Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-09-2004
aurafern aurafern is offline
Miembro
 
Registrado: dic 2003
Posts: 34
Poder: 0
aurafern Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 03-09-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 03-09-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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:

Código SQL [-]
Select *
  from explosion_materiales(:codigo);

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.

Responder Con Cita
  #4  
Antiguo 10-09-2004
aurafern aurafern is offline
Miembro
 
Registrado: dic 2003
Posts: 34
Poder: 0
aurafern Va por buen camino
Talking Muchas Gracias

Agradezco su inmensamente su ayuda!!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:25:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi