向表中添加多个条目

时间:2016-04-10 19:20:03

标签: database

我有一个用户可以制作食谱的网站。

所以我得到了一张名为ingredients的表格,其成分为

因此,用户会根据需要选择他/她想要的成分,然后我会将其存储在名为recipes

的新表中

但我想知道存储这个

的最佳做法是什么

我在想这个

食谱

Id | UserId | IngredientId  
-------------------------- 
0  | 23     | 3,6,7,9,2,1    
1  | 56     | 8,2,6,7,1  
2  | 80     | 1,7,3,2,7  
3  | 11     | 6,7,4,3,21,2 

2 个答案:

答案 0 :(得分:2)

您可以考虑使用联接表。它可以这样工作:

User
Id | Name
0 | Bob Smith
1 | Susie Jones

Recipe
Id | Name
0 | Ramen
1 | Pizza

Ingredient
Id | Name
0 | Flour
1 | Water
2 | Yeast

User_Recipe
User_Id | Recipe_Id
0 | 1
1 | 0

Recipe_Ingredient
Recipe_Id | Ingredient_Id | Quantity
1 | 0 | 1 C.
1 | 1 | 1/2 C.
1 | 2 | 1 T.

答案 1 :(得分:0)

这取决于您的应用程序的复杂程度。您的表格不是normalized,因为您已经写好了。另一方面,对于小型应用程序,我的方式可能有点过分,但我建议使用以下模式:

  1. users

    此表包含您的用户信息,每行都有一个唯一的用户id(据我了解您已有此用户)

  2. ingredients

    在这里,您可以存储具有独特id的成分。此外,这不包含任何食谱信息,如数量,但只有成分属性,如:namedescriptionformprice_per_kilo等。

    < / LI>
  3. recipes

    此表是userrecipes之间的多对多关系。同样,它仅包含食谱属性,例如:user_idnamedate_createdratingdifficultyinstructions

  4. recipe_ingredients

    最后,该表列出了配方所需的所有成分,包括数量。列将为recipe_idingredient_idamountunitcomment

  5. 希望有所帮助