Eğer 3NF (ve sürece kadar performans bulmak gereken bir sorundur) istiyorsanız, ya gerekir:
- (food_items başına sipariş tablo ise) food_item tablodaki her satırda sipariş kimliğini saklamak;
- (food_items sipariş edebilirsiniz sadece olası şeyler ise) veya çok-çok ilişkisi kullanın.
Ilk seçenek ile, böyle bir şey yeterli olacaktır:
Orders:
order_id
other stuff
FoodItems:
order_id
item_id
other stuff.
İkinci seçenek için ayrı bir tablo çok-çok ilişkisi sunar:
Orders:
order_id
other stuff
FoodItems:
item_id
other stuff.
FoodItemsInOrder:
order_id
item_id
count
Benim düşünceme göre, all veritabanı tabloları üçüncü normal formda dizayn edilmelidir. Eğer masa performans sorunu olabilir ki çok büyük olur (ve o very büyük olmak zorunda olacak) sonra, o zaman hız için de-normalizasyon düşünmeye başlayabilirsiniz.
Bir restoran için, her yerde de-normalize gerektirecek yeterince büyük alma sipariş ve gıda maddesini tabloları hayal edemiyorum.