我正在创建食谱应用程序以及从数据库获取的所有食谱。我正在使用 phpMyAdmin。
我之前学过一些关于数据库的类(class),所以我知道如何使用它来完成简单的任务。
现在我有两个表 Recipes
和Ingredients
。我有两个简单的问题:
我应该创建单独的
recipe id
或者使用自动分配的那个? 我将在应用程序中搜索食谱并从列表中选择我想要的结果。我应该如何连接
Ingredients
每个表Recipe
table 。 我想我应该在Ingredient
中使用某种相同的 ID(“reciep_id”)和Recipe
表格,以便稍后在显示结果时将它们连接起来。
最佳答案
我认为标准菜谱 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)
);
关于mysql - 带有两个表的简单数据库应该是什么样子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35805658/