2015-04-06 36 views
0

我有一個數據庫設計問題。我被要求在Access 2007中爲一家小餐館做一個簡單的菜單應用程序。我之前在2007年完成了應用程序,熟悉VBA,但我正在設法考慮最有效的設計方法。數據庫關係 - 訪問中的菜單的三維成分

這家餐廳有一些原料 - 蔬菜(多種),肉類(多種),醬汁(多種)等等。這些組合可以製作三明治或沙拉我的問題讓我們堅持這兩個)。每種成分都是以總成本和每份客戶成本來衡量的。說100克火腿是一個「服務」 - 10克生菜 - 一個「服務」。

所以一個「三明治」可以有多種類型的肉類,多種類型的蔬菜,多種類型的調味醬。起初,我正在考慮一個「肉類」桌子,「蔬菜」桌子,「醬汁」桌子,所有這些桌子都有許多關係到一個「三明治」桌子,這是一個坐在三者之間的關聯桌子。

所以夾心表將具有 ID,MeatID,VegID,SauceID,名稱,GrossPrice(從其他三個表計算),CustPrice(與其他3個表計算)等

但是,有我認爲一個給定的三明治有幾種蔬菜,肉類和醬料的潛力。因此,一個「終極」三明治將有火腿,牛肉,洋蔥,生菜,醃菜,蛋黃醬,醋可以說。 2個肉類,3個蔬菜和2個醬汁。這不適用於簡單的關聯表。這也不包括像「雙肉」或沙拉這將生菜×5的東西。

很明顯,我不是一個完整的數據庫管理員 - 我推杆與此,這不是我的主要工作,無論如何。你將如何爲此設計一個表格模式?當你考慮它時簡單但複雜。

感謝您的任何幫助!

回答

0

你可以有一個像下面這樣的表結構。我使用了三明治的例子,但是您可以爲三明治或沙拉配一張單獨的桌子,用Type屬性來區分它是沙拉還是三明治。

Table - Ingredient 
------------------ 
IngredientID (PK) 
IngredientName 
IngredientType (Vegetables,Meat,Sauce) 
SingleServingCost 

Table - Sandwich 
------------------ 
SandwichID (PK) 
SandwichName 
GrossCost 
CustPrice 

Table - SandwichIngredient 
------------------ 
SandwichIngredientID (PK) 
SandwichID (FK to Sandwich) 
IngredientID (FK to Ingredient) 
TotalServings (If a sandwich can have multiple servings of a single ingredients)