Hola,
en principio debes tener una tabla de Productos/Insumos y luego una segunda tabla de Fórmulas de composición
La tabla Fórmula puede operar un varios niveles como en Producto Terminado, Sub Producto o Insumo
Es una estructura de nodos jerárquicos
CREATEA TABLE PRODUCTOS(
ID INTEGER NOT NULL PRIMARY KEY,
CODIGO CHAR(20),
NOMBRE CHAR(50),
TIPO CHAR(2)
)
CREATE TABLE FORMULA_PROD(
ID INTEGER NOT NULL PRIMARY KEY,
ID_PRODUCTO_CAB INTERGER NOT NULL,
ID_PRODUCTO_DET INTERGER NOT NULL,
CANTIDAD NUMERIC(15,2),
PRECIO_UNI NUMERIC(15,12))
INSERT PRODUCTOS VALUES (1,'PT001','JUGO NARANJA (PT)','PT')
INSERT PRODUCTOS VALUES (2,'PI001','JUGO NARANJA (PI)','PI')
INSERT PRODUCTOS VALUES (3,'PI002','BOTELLA JN 500ML (PI)','PI')
* formula de Producto Terminado Jugo de Naranja 500ml
INSERT FORMULA VALUES (1,2,500)
INSERT FORMULA VALUES (1,3,1)
* fórmula de Producto Intermedio Jugo de Naranga
INSERT FORMULA VALUES (2,...
INSERT FORMULA VALUES (2,...
* fórmula de Producto Intermedio Botella de plástico 500ML
INSERT FORMULA VALUES (3,...
INSERT FORMULA VALUES (3,...
* y luego con SQL puedes listar todas las fórmulas con sus componentes
SELECT PRDE.CODIGO,PRDE.NOMBRE, PRDD,CODIGO,PRDD.NOMBRE, FRM.UNIDAD, FRM.CANTIDAD, FRM.PRECIO
FROM PRODUCTOS PRDE
LEFT JOIN FORMULAS FRM ON
PRD.ID = FRM.ID_PRODUCTO_CAB
LEFT JOIN PRODUCTOS PRDD ON FRM.ID_PRODUCTO_DET =
PRDD.ID * En los SQL que permiten Stored Procedures y Funciones puedes hacer Querys recursivos para recorrer en diferentes niveles
* te sugiero que googlees BOM Recursive Query Bill Of Materials