C# 设计存储食品配方的数据库

C# 设计存储食品配方的数据库,c#,sql-server,database-design,C#,Sql Server,Database Design,我想创建一个搜索食品配方的应用程序,并打算创建以下3个表: 配方(recipeID、recipeName) 成分(ingredientsID、ingredientsName) 配方配料(配方、配料、数量) 配方-RecipeID、名称等。。。 成分-IngreditSID、RecipeID(参考Recipe表)、名称、金额 我想这对你有帮助,两张桌子就行了 recpies (recpieID, IngredientID) Ingredient (IngrdientID , Ingrdie

我想创建一个搜索食品配方的应用程序,并打算创建以下3个表:

  • 配方(recipeID、recipeName)
  • 成分(ingredientsID、ingredientsName)
  • 配方配料(配方、配料、数量)
  • 配方-RecipeID、名称等。。。
  • 成分-IngreditSID、RecipeID(参考Recipe表)、名称、金额

  • 我想这对你有帮助,两张桌子就行了

    recpies (recpieID, IngredientID)
    Ingredient (IngrdientID , IngrdientName , Amount )
    
    要使事情变得简单,请插入以下内容 例如,我有一个食谱:

    recipe name : cake  
    ingredients : sugar = 1 kg
                  color = 100 gm
                  soda  = 500 gm
    
    所以,当您向配料表插入多个配料时,请保持IngCreditID相同 i、 如果我们把蛋糕放在桌子上,它会是这样的

    recpies(1,0001)   // some random unique ID
    ingredient (0001 , sugar , 1 kg )
               (0001 , color , 100 gm)
               (0001 , soda  , 500 gm )
    

    您总共需要3张表:

  • 食谱
  • 配料
  • 配方和配料
  • 在当前的设计中,只需将数据添加到数据库中;不需要100张桌子。我想可能对table这个词有误解

    存储数据的表。因此,在recipes中,您将存储RecipeID及其对应的recipeName

    对于配方和配料,您只需将配方和您选择的配料连接起来。没有必要为此创建100个表。只需在单个表中添加数据

    示例:假设您有一个配方包含5种成分:RecipeID=1;IngredientID=1到5。您必须添加这些成分中的每一种,并连接到配方中的recipeID

    此表中将包含以下条目:

    PrimaryKey---RecipeID---IngCreditId
    1---1---1
    2-1-2
    3---1---3
    4---1---4
    5-1-5

    请注意,PrimaryKey用于区分此表中的每个条目

    如果您想要ID为1的配方的所有成分;您可以通过为RecipeID 1选择所有IngRedientId'来查询此项,然后从ingredientstable中加入ingredientName


    另一方面,你可能也想重新考虑一下你的名字。请看这里:

    为什么100
    recipe\u配料
    您应该只需要一个
    recipe\u配料
    表。欢迎来到数据库设计世界。请注意表格和记录的差异。100个配方将在配方表中产生100条记录。如果他们使用100种成分,这将在成分表中产生100条记录。您的关系表配方成分有多少条记录?这将取决于每种配料的配方数量。那会有所不同!不过,对设计不太确定:你也需要数量和说明,对吗?我想要第三张表,因为我需要在每个配方中添加每种成分的数量。多种食谱可以使用相同的成分,但用量不同。我想你不需要第三张桌子。在配料表中,您已经有了IngredientsID,RecipeID-它将唯一地标识IngredientID的哪个RecipeID,以及相应的数量。您不认为在不止一个配方中可能需要食盐之类的配料吗?当然,这就是为什么表的设计是这样的。我将编辑我的帖子来说明我的意思。那么你将把每种配料储存在哪里呢?我不是这个意思:每种食谱都包含不止一种配料,希望如此……太棒了,非常感谢你的透彻解释,这真的澄清了我的困惑。我还有一个问题,如果我想给每种配料添加数量,我是否应该直接将其添加到配方配料表的每个记录中?换言之,我是否应该在表格上为金额创建另一列?我已经标记了您的答案,但我没有足够的声誉来投票支持它。很抱歉。@MinhNguyen:没问题!很高兴我能帮忙:)理论上,关系表应该只包含键。但理论就是这样。是的,我认为将数量添加到关系中是可以的。是的,将数量添加到配方配料表中是完全可以的。这就是食谱和配料的结合点。实际上,把它们放在那个地方是有道理的。
    recpies(1,0001)   // some random unique ID
    ingredient (0001 , sugar , 1 kg )
               (0001 , color , 100 gm)
               (0001 , soda  , 500 gm )