Încerc să proiectez o bază de date care să stocheze unul (sau mai multe) planuri de masă pentru diferite persoane. Există 2 scenarii diferite în această întrebare.

(Vă rugăm să consultați imaginea)

date

Există 4 tabele: PERSON, MEALPLAN, MEALPLAN_FOOD și FOOD. Tabelul PERSON stochează informații de bază pentru fiecare persoană care deține un plan de masă. Tabelul MEALPLAN va ține evidența fiecărui plan de masă (dietă). Tabelul FOOD este un tabel cu diferite alimente (de exemplu, ou, spanac, cartof dulce, fulgi de ovăz etc.) și stochează informațiile despre proteine ​​/ carbohidrați/grăsimi/calorii pentru fiecare „unitate de cantitate” (de exemplu, 1 cană) pentru fiecare produs alimentar. Tabelul MEALPLAN_FOOD servește ca tabel de căutare/asociativ pentru MEALPLAN și FOOD.

Cred că am aceste tabele configurate corect. Fiecare persoană are unul (sau mai multe) planuri de masă. Fiecare plan de masă constă din unul (sau mai multe) alimente/cantitate. Întrebarea mea vine în următorul scenariu.

(Vă rugăm să consultați imaginea)

Primul scenariu este limitat prin faptul că stochează doar o listă de produse alimentare pe plan de masă. În al doilea scenariu, am dori să încorporăm tabele suplimentare, astfel încât planurile de masă să poată fi defalcate și stocate pe mese. Fiecare persoană va lua unul (sau mai multe) planuri de masă cu între 1 și 4 mese pe plan de masă (planurile de masă pot consta doar din 2 sau 3 mese). Pentru a realiza acest lucru, tabelul de căutare/asociativ MEALPLAN_FOOD din primul scenariu a fost înlocuit cu 2 tabele de căutare/asociative (MEALPLAN_M și M _FOOD) și o masă de masă (M1 pentru masa 1, M2, M3 și M4).

Întrebare: Presupunând că proiectarea primului scenariu este corectă, este corect proiectarea celui de-al doilea scenariu în realizarea funcționalității suplimentare? Este corect acest design în tabelele de căutare suplimentare pentru a permite stocarea produselor alimentare pe masă pe plan de masă pe persoană? Sau există un mod/design mai bun pentru realizarea acestei sarcini?