简单的数据库应该如何与两个表一起使用?

时间:2016-03-04 20:42:21

标签: mysql database database-design

我正在创建食谱应用程序以及我从数据库中获取的所有食谱。我正在使用phpMyAdmin。

我之前几乎没有关于数据库的课程,所以我知道如何将它用于简单的任务。

现在我有两张表RecipesIngredients。我有两个简单的问题:

  1. 我应该创建单独的recipe id还是使用自动分配的Ingredients? 我将在app中搜索食谱并从列表中选择我想要的结果。

  2. 我应该如何为每个Recipe表连接Ingredient表。 我想我应该在Recipeif表格中使用某种ID(" reciep_id"),以便稍后在显示结果时将它们连接起来。

1 个答案:

答案 0 :(得分:2)

  1. 我认为标准配方ID可以接受,因为我无法想象配方的自然主键。

  2. 您的每个食谱都包含一些成分。任何成分都可以用于多个食谱中。所以你应该使用与链接表的标准n-n关系。

  3. 您的表格可以是这样的(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)
    );