mysql:在具有主键的表和没有唯一列的表之间创建外键

tzdcorbm  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(321)

我搞不清楚。
我有两个表,一个非常大,列中有唯一的值-“column1”。我想把它连接到一个较小的表,只有两列,一列连接到'column1',另一列-'column2'带有空值和重复值。
问题是,在第二个较小表的“column1”中,相同的值将多次出现,因此我无法使较小表中的列成为主键或唯一键,以便通过外键将其与较大表连接。
我们非常感谢您对这个问题的任何帮助。

s71maibg

s71maibg1#

您有两种可能的解决方案:
您可以使用这两种方法创建主键 column1 以及 column2 . 您可以复制这两个值中的一个,只要这对值在表中不重复;
您可以在第二个表(表)中添加第三列 id 字段),并将其设置为pk。这样你可以复制你想要的,因为 id 将永远不同。
缺点:
第一种情况更“理论上正确”,这是教科书建议您做的,但是组合的pk可能计算量很大,这取决于两列的类型(比较字符串与比较整数不同)
第二种情况更容易计算(只有一个值和数字),但是允许成对的重复,这可能不是您想要的。
你的选择。
编辑
这个 null 值可能会给您带来一些问题,所以我可能会使用数字,自动递增 id 列。我会保留两个选项的答案以备将来参考。

相关问题