我正在创建食谱应用程序以及我从数据库中获取的所有食谱。我正在使用phpMyAdmin。
我之前几乎没有关于数据库的课程,所以我知道如何将它用于简单的任务。
现在我有两张表Recipes
和Ingredients
。我有两个简单的问题:
我应该创建单独的recipe id
还是使用自动分配的Ingredients
?
我将在app中搜索食谱并从列表中选择我想要的结果。
我应该如何为每个Recipe
表连接Ingredient
表。
我想我应该在Recipe
和if
表格中使用某种ID(" reciep_id"),以便稍后在显示结果时将它们连接起来。
答案 0 :(得分:2)
我认为标准配方ID可以接受,因为我无法想象配方的自然主键。
您的每个食谱都包含一些成分。任何成分都可以用于多个食谱中。所以你应该使用与链接表的标准n-n关系。
您的表格可以是这样的(link to sqlfiddle with this code):
CREATE TABLE Recipes (
id int,
name text,
PRIMARY KEY (`id`)
);
CREATE TABLE Ingredients(
id int,
name text,
PRIMARY KEY (`id`)
);
CREATE TABLE Recipes2Ingredients (
rec_id int,
ing_id int,
amount int,
-- and maybe some other needed fields
FOREIGN KEY (rec_id)
REFERENCES Recipes(id),
FOREIGN KEY (ing_id)
REFERENCES Ingredients(id)
);