Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta abm - tablas relacionadas

Estas en el tema de Consulta abm - tablas relacionadas en el foro de Mysql en Foros del Web. Hola gente del foro! quisiera comunicarles mi duda, tengo q realizar una ABM de productos , hasta ahi es facil, el tema es que dicho ...
  #1 (permalink)  
Antiguo 17/05/2012, 16:26
Avatar de lozanoguido  
Fecha de Ingreso: junio-2011
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Consulta abm - tablas relacionadas

Hola gente del foro! quisiera comunicarles mi duda, tengo q realizar una ABM de productos , hasta ahi es facil, el tema es que dicho producto puede tener "N" datos en otra tabla "ingredientes", yo lo que hago es lo siguiente:

en la tabla Productos tengo el ID de "Ingredientes", como por ejemplo

Tabla Productos

Nombre: ID_Ingredientes:
"ProductoA" "01"

Tabla Ingredientes
ID Ingrediente
01 CompuestoA
01 CompuestoB
01 CompuestoC
01 CompuestoD

el tema es el siguiente, de que manera al crear un Producto, podria dar la posibilidad de crear los ingredientes? sin tener la necesidad de que recuerde el ID de la tabla Producto y despues ir a la tabla "Ingredientes" RECORDAR que ID puso en el campo ID_Ingrediente para luego crearlos....

espero haber sido claro :S saludos!
  #2 (permalink)  
Antiguo 18/05/2012, 01:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 9 meses
Puntos: 574
Respuesta: Consulta abm - tablas relacionadas

No has sido claro.

Si no sabes esto me podrias decir que parte es fácil para ti

Cita:
una ABM de productos , hasta ahi es facil,
La situación que intentas describir es una relación n:m (muchos a muchos) entre productos e ingredientes (puesto que un producto puede tener n ingredientes y un ingrediente puede integrarse en m productos).

La solución a este problema es de libro

Productos
idProducto
NombreProducto
....

Ingredientes
idIngrediente
NombreIngrediente
...

RelProductoIngrediente
idRel
idProducto
idIngrediente
cantidad

Esto te dará la receta del producto X

Código MySQL:
Ver original
  1. SELECT i.nombreIngrediente,
  2.              r.cantidad
  3. FROM (productos p
  4.        INNER JOIN RelProductoIngrediente r
  5.             ON p.idProducto=r.idProducto)
  6.                  INNER JOIN ingredientes i
  7.                         ON i.idIngrediente=r.idIngrediente
  8. WHERE p.idProducto=X

Para crear un producto tienes que ingresar sus datos generales en la tabla productos, e ingresar su id a la tabla relación junto con el id de tantos ingredientes y cantidades como tenga la receta (un registro para cada idProducto/IdIngrediente/Cantidad).

La tabla de relación no debe admitir ningun idProducto que no este en productos ni ningun ingrediente que no este en ingredientes ....

No le des vueltas esta es la unica solución eficiente.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 18/05/2012 a las 04:22 Razón: Corregir el lapsus!!!
  #3 (permalink)  
Antiguo 18/05/2012, 03:48
 
Fecha de Ingreso: febrero-2010
Mensajes: 157
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: Consulta abm - tablas relacionadas

un lapsus

SELECT i.nombreIngrediente,
r.cantidad
FROM (productos p
INNER JOIN RelProductoIngrediente r
ON p.idProducto=r.idProducto)
INNER JOIN ingredientes i
ON i.idIngrediente=r.idIngrediente
WHERE p.idProducto=X

Etiquetas: abm, relacionadas, tabla, tablas, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:22.