所以我們有食物,通常是一個單一的單位和食譜,它由不同數量的不同食物組成。如何設計此RDBMS模式?
我們想追蹤一些基本的東西,如價格和營養信息。
我們將如何爲此設計RDBMS模式?
所以,這裏是可能是最明顯的解決方案:
[Foods] : ID, Name, Carbs, Protein, Fat, Price
[RecipeIngredients] : ID, FoodID, RecipeID, AmountOfFood
[Recipes] : ID, Name
然而,由於配方几乎所有相同的操作的食物,我需要創建大量的重複的代碼來支持。
這裏是另一種方法:
[Foods] : ID, Name, Carbs, Protein, Fat, Price, IsRecipe
[RecipeFoods] : ID, FoodID, RecipeID (which points to another Food), AmountOfFood
現在所有的動作相同工作兩個。但是,僅添加特定於「食物」或「食譜」的字段會爲其他實體創建空列。
你會如何解決這個問題?你更傾向哪個?有沒有更好的辦法?