我有一个用户可以制作食谱的网站。
所以我得到了一张名为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
答案 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,因为您已经写好了。另一方面,对于小型应用程序,我的方式可能有点过分,但我建议使用以下模式:
表users
此表包含您的用户信息,每行都有一个唯一的用户id
(据我了解您已有此用户)
表ingredients
在这里,您可以存储具有独特id
的成分。此外,这不包含任何食谱信息,如数量,但只有成分属性,如:name
,description
,form
,price_per_kilo
等。
表recipes
此表是user
和recipes
之间的多对多关系。同样,它仅包含食谱属性,例如:user_id
,name
,date_created
,rating
,difficulty
,instructions
等
表recipe_ingredients
最后,该表列出了配方所需的所有成分,包括数量。列将为recipe_id
,ingredient_id
,amount
,unit
,comment
等
希望有所帮助