FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
recursividad
Cordial saludo. Voy a citar un caso para el cual no he encontrado una solucion apropiada. Necesito crear una base de datos para modulo de produccion que me permita crear productos y hacer explosion de ellos
ejemplo: para producir el producto 001 (un pastel en hojaldre) , necesito: el producto masa1 : 20gr el producto guiso : 10 gr el producto pollo desmechado : 3 gr y la mano de obra el producto masa1 a su vez es otra receta: harina 5gr agua 0.3ml sal 1gr el producto guiso a su vez es otra receta: tomate 5gr cebolla 5gr sal 1gr el producto pollo desmechado se saca del inventario (se compra procesado y desmechado) Cómo es la estructura de las tablas para ingresar la receta y cómo consulto, por ejemplo la receta detallada hasta el ultimo nivel?. informe detallado de cuanto me cuesta fabricar un pastel: Item Costo =================================================== pastel en hojaldre 1500 masa1 250 harina 5gr 200 agua 0.3ml 20 sal 1gr 30 guiso 350 tomate 5gr 150 cebolla 5gr 170 sal 1gr 30 pollo 400 mano de obra 500 Alguien ha resuelto algo parecido o sabe donde puedo conseguir una guia para la solucion de este problema? De entemano muchas gracias |
#2
|
||||
|
||||
Hola.
Cada producto es un árbol. Supón que los almacenas en la tabla productos, para indicar los hijos que tiene un determinado producto, te recomiendo que utilizes otra tabla (que mantenga una relación 1..n con la misma tabla productos). Asi tienes PRODUCTOS : IdProducto, Nombre_Producto HIJOS : IdPadre, IdHijo, Cantidad Para obtener una receta completa, solo tienes que hacer un recorrido completo del árbol del producto. Es decir, accedes al producto, miras los hijos que tiene, accedes a cada uno de los hijos, para cada uno miras sus hijos, accedes a cada uno de sus hijos, ... (Efectivamente es un recorrido recursivo). Ya veras que es fácil de implementar. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). Última edición por guillotmarc fecha: 10-09-2004 a las 20:00:45. |
#3
|
||||
|
||||
Hola.
Sobre tu problema, y siguiendo con la idea de marcos, interbase/firebird soporta llamadas recursivas a los procedimientos almacenados. Con ello, se puede convertir en algo tan simple como:
y explosion materiales, se encargará de llamarse recursivamente para aquellos materiales "compuestos". Ahora. Has colocado antes esta pregunta en otro hilo. La guia de estilo (leela si no lo has hecho todavia) recomienda no duplicar las preguntas, por lo que lo pertinente es que esperaras respuestas alla. Hasta luego. |
#4
|
|||
|
|||
Muchas Gracias
Agradezco su inmensamente su ayuda!!!!
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|