Database design 如何设计这个RDBMS模式?
所以我们有食物,通常是一个单一的单位和食谱,其中包括不同数量的不同食物 我们想追踪一些基本信息,比如价格和营养信息 我们将如何为此设计RDBMS模式 因此,这里可能是最明显的解决方案:Database design 如何设计这个RDBMS模式?,database-design,rdbms,Database Design,Rdbms,所以我们有食物,通常是一个单一的单位和食谱,其中包括不同数量的不同食物 我们想追踪一些基本信息,比如价格和营养信息 我们将如何为此设计RDBMS模式 因此,这里可能是最明显的解决方案: [Foods] : ID, Name, Carbs, Protein, Fat, Price [RecipeIngredients] : ID, FoodID, RecipeID, AmountOfFood [Recipes] : ID, Name 然而,由于recipe和foods具有几乎所有相同的操作,我需
[Foods] : ID, Name, Carbs, Protein, Fat, Price
[RecipeIngredients] : ID, FoodID, RecipeID, AmountOfFood
[Recipes] : ID, Name
然而,由于recipe和foods具有几乎所有相同的操作,我需要创建大量重复代码来支持这两种操作
以下是另一种方法:
[Foods] : ID, Name, Carbs, Protein, Fat, Price, IsRecipe
[RecipeFoods] : ID, FoodID, RecipeID (which points to another Food), AmountOfFood
现在,所有操作对这两个对象都起相同的作用。但是,仅添加特定于食品或配方的字段会为其他实体创建空列
你将如何解决这个问题?你喜欢哪一个?有更好的方法吗?保存数据库
一份食谱
不是你已经注意到的食物
,所以他们不应该共用一张桌子
每个实体在数据库中都应该有自己的表。如果必须具有此数据库结构(+1到Oded),请确保未使用的列为NULL,并且代码可以处理此问题