Mysql 有两个表的简单数据库应该是什么样子?

Mysql 有两个表的简单数据库应该是什么样子?,mysql,database,database-design,Mysql,Database,Database Design,我正在创建配方应用程序和从数据库中获取的所有配方。我正在使用phpMyAdmin 我以前很少上数据库方面的课,所以我知道如何将它用于简单的任务 现在我有两张表食谱和配料。我有两个简单的问题: 我应该创建单独的配方id还是使用自动分配的配方id? 我将在应用程序中搜索食谱,并从列表中选择我想要的结果 对于每个配方表,我应该如何连接配料表。 我想我应该在配料表和配方表中使用某种相同的ID(“Receip_ID”),以便以后在显示结果时连接它们 我认为标准配方id是可以接受的变体,因为我无法想象配方的

我正在创建配方应用程序和从数据库中获取的所有配方。我正在使用phpMyAdmin

我以前很少上数据库方面的课,所以我知道如何将它用于简单的任务

现在我有两张表
食谱
配料
。我有两个简单的问题:

  • 我应该创建单独的
    配方id
    还是使用自动分配的配方id? 我将在应用程序中搜索食谱,并从列表中选择我想要的结果

  • 对于每个
    配方
    表,我应该如何连接
    配料
    表。 我想我应该在
    配料表
    配方表
    中使用某种相同的ID(“Receip_ID”),以便以后在显示结果时连接它们

  • 我认为标准配方id是可以接受的变体,因为我无法想象配方的自然主键

  • 你食谱中的每一道菜都包括一些配料。任何成分都可以用在一个以上的配方中。所以您应该使用标准的n-n关系和链接表

  • 您的表可以如下所示():

  • 我认为标准配方id是可以接受的变体,因为我无法想象配方的自然主键

  • 你食谱中的每一道菜都包括一些配料。任何成分都可以用在一个以上的配方中。所以您应该使用标准的n-n关系和链接表

  • 您的表可以如下所示():


    我同意,但您应该在
    recipes2ingrements
    中添加更多属性,如
    金额
    。例如,对于配方1,你需要一个洋葱(=配料),而对于配方2,你需要五个洋葱。非常感谢,你是对的。我确定答案。我很少做饭:)所以我不经常用食谱。不客气。我会做饭,这可能就是我想到的原因。除此之外,你的回答在我看来是合理的。你可以为
    配方
    设想一个父表,比如
    (例如猪肉、面条、蔬菜等),但这不是OP的问题。我同意,但你应该为
    配方2成分
    添加更多属性,比如
    数量
    。例如,对于配方1,你需要一个洋葱(=配料),而对于配方2,你需要五个洋葱。非常感谢,你是对的。我确定答案。我很少做饭:)所以我不经常用食谱。不客气。我会做饭,这可能就是我想到的原因。除此之外,你的回答在我看来是合理的。你可以为
    食谱
    设想一个父表,比如
    (例如猪肉、面条、蔬菜等),但这不是OP的问题。
    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)
    );