Projektuję swoją pierwszą bazę danych dla MySQL, a pomysł polega na tym, że mamy zamówienia, które mogą zawierać wiele różnych elementów. Postanowiłem więc zapisać zamówienie z wszystkimi istotnymi informacjami w jednej tabeli, elementy w innym, a następnie utworzyć trzecią tabelę, w której przechowywany jest każdy zamówiony produkt. Oczywiście za każdym razem, gdy będę musiał podać zamówienie, najpierw będę musiał znaleźć każdy identyfikator OrderedItemsID, dla którego Identyfikator zamówienia jest taki sam, jak ID zamówienia, którego potrzebuję, a następnie dopasować go do elementów.Co jest nie tak z tym schematem SQL?
Teraz, ponieważ jest to mój pierwszy projekt DB, nie jestem wystarczająco arogancki, aby myśleć, że to dobre rozwiązanie, więc zastanawiałem się, czy ktoś zna dobre rozwiązanie tego problemu? Dzięki
obraz jest http://img211.imageshack.us/img211/5575/stackoverflowq.png
To wygląda dobrze, dobra praca dla pierwszego wysiłku :) – rjohnston
dobre! Dobra robota w atrybucie 'PriceAtPurchase'; Podejrzewam, że wielu początkujących popełniłoby błąd zakładając, że "Cena" nie powinna być powielana z "Przedmioty" - jednak, jak słusznie zauważyłeś, nie jest to duplikacja! I; jak zaznacza Russ, podobne może być rozpatrywane pod kątem możliwych atrybutów na obu "Zamówieniach" i "Zamówionych Elementach". Jedyne, co muszę dodać to to, że użycie nowego sztucznego klucza na "OrderedItems" pozostawia ci atrybut, który ma ** NO ** znaczenie, jest ** NIGDY ** odwołany i może prowadzić do aktualizacji anomalii. To kwestia sporna, ale myślę, że widzisz, gdzie stoję. ^^ –