es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se relacionaría mejor los datos de ‘sub-recipe’ con la tabla de ‘recipe’ en este esquema ERD/Base de datos?

Tengo una tabla de enlace que une productos con ingredientes para representar recetas.

Mi intención es permitir a los usuarios usar “sub-recetas”, lo que significa que puedes incluir una receta dentro de otra. Lógicamente, esto significa que en el front-end, cuando agregas una “sub-receta” a una receta, luego en el back-end simplemente creas una entrada en product_has_ingredient relacionando cada uno de los ingredientes relacionados con el producto de la sub-receta al nuevo producto.

Sin embargo, esto no mantiene la idea de que la relación es distinta de los ingredientes normales. Estoy tratando de encontrar una manera de permitir que un producto opcionalmente tenga una sub-receta que mantenga la misma estructura funcional que tengo ahora:

Porción relevante de la base de datos ERD que muestra cuatro tablas relacionadas

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una posible solución para mantener la relación distinta entre las sub-recetas y los ingredientes normales es crear una nueva tabla product_has_subrecipe con las columnas product_id, subrecipe_id y quantity. Esta tabla representaría la idea de que un producto puede tener como ingrediente tanto un ingrediente normal como una sub-receta, y la cantidad de ese ingrediente se registraría en la columna quantity.

    Cuando un usuario añade una sub-receta a una receta, el subrecipe_id y quantity se agregarían a la tabla product_has_subrecipe para el nuevo producto. Esto permitiría recuperar fácilmente todas las sub-recetas utilizadas en una receta y la cantidad utilizada.

    Además, para diferenciar entre los ingredientes normales y las sub-recetas en la interfaz, se podría utilizar un formulario o campo de entrada diferente para las sub-recetas, o etiquetarlas de manera diferente en la visualización de la receta.

Comments are closed.