algunas reflexiones:
Es posible que desee utilizar la misma tabla para la receta y los ingredientes, con una columna de indicador de tipo. La razón es que las Recetas pueden contener sub-recetas. Llamemos a la tabla combinada "Artículo". A continuación, la mesa recipeIngredient se vería
RecipeIngredient (RecipeId, ItemId, Amount).
yo esperaría que la tabla también tendría una columna de secuenciación.
Si desea hacer algún cálculo con estas recetas (por ejemplo, escalado, análisis nutricional, planificación de la producción), entonces las cantidades deberán especificar una unidad de medida. Puede hacerlo explícitamente (al tener una columna separada para uofm) o puede usar un campo de texto para la cantidad y esperar que el usuario ingrese valores como "1 taza" o "2 tbs". Si sigue ese enfoque, deberá asegurarse de que lo que ingrese sea reconocible y analizarlo cada vez que necesite usarlo. Esto puede volverse sorprendentemente complejo, especialmente si desea representar los rendimientos de las recetas de manera formal.
Suponiendo que quiere 1: M de la receta a la categoría, todavía no estoy seguro de por qué su tabla RecipeCategory tendría una columna de nombre. Creo que el nombre proviene de la definición de categoría.
Estoy de acuerdo con Dave en que es poco probable que reutilice los pasos de preparación de la receta a la receta, por lo que una tabla de pasos de preparación de recetas (o algo así) sería más apropiada.
Sin embargo, las recetas a menudo se presentan con los ingredientes y las instrucciones entremezcladas. p.ej.
Introducción al texto algunos ingredientes. instrucciones de preparación algunos ingredientes más instrucciones de cocción.
Para acomodar eso, debe establecer hábilmente los valores de secuencia en las tablas de pasos RecipeIngredient y RecipePreparation para que pueda combinar los datos de ambos en el orden correcto para la presentación. Otro enfoque sería, en lugar de estas dos tablas, usar una tabla "RecipeLine" de modo que cada fila pueda representar una instrucción O un ingrediente. Creo que eso es lo que estabas sugiriendo. Los puristas fruncirían el ceño en este tipo de sobrecarga de mesa, pero no soy purista.
Este es un tema sobre el que conozco mucho, así que pregúntame cualquier cosa.
Hola Elroy, gracias por una respuesta tan excelente y locuaz como realmente lo aprecio. Estaba un poco confundido por esta afirmación que hiciste "..explícitamente (al tener una columna separada para uofm) ..." y también el penúltimo párrafo es algo que REALMENTE me gustaría hacer. ¿Podría ayudarme con un ejemplo? Si no te importa, ¿puedo tener una dirección de correo electrónico para poder enviarte una versión en PDF de mi diseño actual? Gracias. –
Hola, me gustaría aceptar su correo electrónico, pero no quiero publicar mi dirección aquí. Soy nuevo en SO. No veo una forma de enviarte un correo electrónico a través de tu perfil. Si puede explicar otra forma de enviarle un correo electrónico, por favor, o simplemente publique su dirección de correo electrónico aquí. –
Gracias. Mi dirección de correo electrónico es [email protected] Reviso ese correo electrónico todo el tiempo. Puede enviarme un correo electrónico y luego responderé al suyo. –