Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 多对多关系中的外键?_Mysql_Database Design_Foreign Keys - Fatal编程技术网

Mysql 多对多关系中的外键?

Mysql 多对多关系中的外键?,mysql,database-design,foreign-keys,Mysql,Database Design,Foreign Keys,我对需要存储在多对多关系表中的内容有点困惑 如果我有两张桌子:航班和公司,我需要在桌子上储存什么 例如,该表是否只需要包含航班号和公司的唯一名称,还是还必须包含更多信息,如公司总部地址、航班目的地和出发地点等 如果航班的目的地和出发地点ID有两个外键,那么它引用了另一个表位置 表companyflight是否可以包含引用位置表的外键,这些外键是飞行表的外键?最小值为两列——其他两个表的主键,您可以将它们称为Flight\u id和company\u id。在它们的表中,每一个都可能是一个AUTO

我对需要存储在多对多关系表中的内容有点困惑

如果我有两张桌子:航班和公司,我需要在桌子上储存什么

例如,该表是否只需要包含航班号和公司的唯一名称,还是还必须包含更多信息,如公司总部地址、航班目的地和出发地点等

如果航班的目的地和出发地点ID有两个外键,那么它引用了另一个表位置


表companyflight是否可以包含引用位置表的外键,这些外键是飞行表的外键?

最小值为两列——其他两个表的主键,您可以将它们称为
Flight\u id
company\u id
。在它们的表中,每一个都可能是一个
AUTO_INCREMENT
,但在映射表中不需要AUTO_inc

有关索引的讨论,请参见以下内容:

特定于航班的所有内容都应在
Flights
表中。
公司同上
。它不应该在多:多表中


一些模式设计者在关系中添加了另一列进行排序或某种限定。

您可以从这里开始阅读:我认为这里唯一的多对多关系是在您描述的
航班
表中,即出发地点和目的地位置ID之间。斯拉瓦说了什么。具体来说,第二个标准格式将排除将航空公司名称之类的内容放在连接表中。一些设计师在连接表中添加了额外的属性。但前提是它们依赖于两个外键。