请参阅下面的指示性架构。
表 2 包含不同格式的影片。例如。 2D、3D、4D 等
其格式如各列所示,最后一列是表 1 中的胶片 ID 号。
由于表 1 中的电影 ID 列是表 1 的主键,因此我相信表 2 中的电影 ID 列是外键。然而,这使得表 2 中没有主键。
在这种情况下,最好的做法是让表 2 没有主键,还是将两个胶片 ID 设置为两个表的主键,或者我应该在表 2 中创建另一列,以允许“胶片格式 ID”是我的表 2 主键吗?
视觉引用:
table 1 table 2
-------|------- -------|-------|-------|-------
Film |film ID Film ID| 3D | 4D | 2D
^primary key ^foreign key
最佳答案
在我看来,许多电影都有多种格式,因此将 filmid 作为第二个表中的 PK 是错误的。此外,该设计没有标准化并且存在很大缺陷。您应该有第三个胶片类型表,它是一个查找表。然后第二个表应仅包含 filmid 和 filmtypeid,您可以在这两个字段的组合上创建主键。这称为联结表。
关于mysql - 具有相同唯一列的表的主键或外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41899489/