Hola gente, soy nuevo en el foro pero seguidor hace años. Tengo una duda; espero que puedan ayudarme.
Sucede que tengo básicamente 3 tablas, las cuales son:
Código SQL:
Ver originalCREATE TABLE `padre` (
`idpadre` INT(255) NOT NULL AUTO_INCREMENT,
`padre` text COLLATE latin1_spanish_ci NOT NULL,
`pesoPadre` VARCHAR(45) COLLATE latin1_spanish_ci NOT NULL,
PRIMARY KEY (`idpadre`)
)
CREATE TABLE `hijo` (
`idhijo` INT(255) NOT NULL AUTO_INCREMENT,
`idpadre` INT(255) NOT NULL,
`hijo` text COLLATE latin1_spanish_ci NOT NULL,
`pesoHijo` VARCHAR(45) COLLATE latin1_spanish_ci NOT NULL,
PRIMARY KEY (`idhijo`)
)
CREATE TABLE `nieto` (
`idnieto` INT(255) NOT NULL AUTO_INCREMENT,
`idhijo` INT(255) NOT NULL,
`nieto` text COLLATE latin1_spanish_ci NOT NULL,
`pesoNieto` VARCHAR(45) COLLATE latin1_spanish_ci NOT NULL,
PRIMARY KEY (`idnieto`)
)
El padre es un servicio, el hijo un sub-servicio y el nieto un sub-sub-servicio. Ahora lo que me complica:
Imaginemos que los padres son
A,
B,
C y
D. Cada uno cuenta con su 100 en el campo
pesoPadre. Pero a su vez existen
A.1,
A.2,
A.3 que son hijos del padre
A. Cada uno de estos tres hijos tiene un 33.33 como
pesoHijo que hacen el 100 del padre
A. Sin embargo existen un nivel mas aún. Que
A1 tiene como nieto a
A.1.a,
A.1.b,
A.1.c y
A.1.d. Cada uno de estos cuatro nietos tiene un 25.00 como
pesoNieto que hacen el 100 del hijo.
Entonces lo que quiero lograr hacer es que la cosa sea modular al momento de agregar un registro por ejemplo en la tabla nieto. Me explico. Si teníamos
A.1.a,
A.1.b,
A.1.c,
A.1.d y ahora quiero agregar otro registro que en este caso sería
A.1.e el valor de sus campos
pesoNieto ya no sería 25.00, sino 20.00 (porque 100/5 da 20).
La consulta cuando agrego un registro nuevo en la tabla nieto por ejemplo sería así:
Y no hay problema en agregar el dato que devuelve esa consulta al campo
pesoNieto en la tabla
nieto. Mi problema es actualizar los otros valores
pesoNieto de las distintas filas.
Había pensado en hacerlo con trigger tomando en cuenta que mientras mas bajo nivel mejor, pero no me manejo para nada con los trigger.
Espero que puedan ayudarme y se haya entendido mi problema.