【问题标题】:How to create a "connection" table with information of two separate tables in MySQL?如何使用 MySQL 中两个单独表的信息创建“连接”表?
【发布时间】:2017-12-12 11:33:30
【问题描述】:

我在我的 mysql 数据库中创建了两个表,如下所示:

CREATE TABLE Representative(
   id varchar(15),
   name varchar(40),
   PRIMARY KEY(id)
 ) ENGINE=InnoDB DEFAULT CHARSET=latin1;



CREATE TABLE Congress(
   congress_id int,
   total_members int,
   PRIMARY KEY(congress_id)
   )ENGINE=InnoDB DEFAULT CHARSET=latin1;

有多个代表大会,每个代表大会都有不同的代表。我需要做的是创建另一个表,其中包含参加给定大会的每位代表。请注意,一位代表可以是不同代表大会的成员。我在使用外键时遇到了问题,并且真的不知道创建另一个表所需的命令,该表连接已经填充的另外两个表。

【问题讨论】:

  • total_members 是根据与国会相关的代表人数计算的吗?在链接方面:stackoverflow.com/questions/2923809/…
  • 不,在收集所有代表及其信息之前,我已经有了这些信息

标签: mysql database foreign-keys


【解决方案1】:

为了表示这种多对多关系,你需要另一个表,我们称之为Representatives_Congresses。它通常被称为连接表或连接表。

它将只有两列,representative_idcongress_id。总之,这些列将构成新表的主键。它们也应该设置为 FK。

要表明代表参加了大会,请在此表中插入一行,其中包含代表和大会的 id 值。要从代表大会中删除代表,请删除该行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多