我搞不清楚。我有两个表,一个非常大,列中有唯一的值-“column1”。我想把它连接到一个较小的表,只有两列,一列连接到'column1',另一列-'column2'带有空值和重复值。问题是,在第二个较小表的“column1”中,相同的值将多次出现,因此我无法使较小表中的列成为主键或唯一键,以便通过外键将其与较大表连接。我们非常感谢您对这个问题的任何帮助。
s71maibg1#
您有两种可能的解决方案:您可以使用这两种方法创建主键 column1 以及 column2 . 您可以复制这两个值中的一个,只要这对值在表中不重复;您可以在第二个表(表)中添加第三列 id 字段),并将其设置为pk。这样你可以复制你想要的,因为 id 将永远不同。缺点:第一种情况更“理论上正确”,这是教科书建议您做的,但是组合的pk可能计算量很大,这取决于两列的类型(比较字符串与比较整数不同)第二种情况更容易计算(只有一个值和数字),但是允许成对的重复,这可能不是您想要的。你的选择。编辑这个 null 值可能会给您带来一些问题,所以我可能会使用数字,自动递增 id 列。我会保留两个选项的答案以备将来参考。
column1
column2
id
null
1条答案
按热度按时间s71maibg1#
您有两种可能的解决方案:
您可以使用这两种方法创建主键
column1
以及column2
. 您可以复制这两个值中的一个,只要这对值在表中不重复;您可以在第二个表(表)中添加第三列
id
字段),并将其设置为pk。这样你可以复制你想要的,因为id
将永远不同。缺点:
第一种情况更“理论上正确”,这是教科书建议您做的,但是组合的pk可能计算量很大,这取决于两列的类型(比较字符串与比较整数不同)
第二种情况更容易计算(只有一个值和数字),但是允许成对的重复,这可能不是您想要的。
你的选择。
编辑
这个
null
值可能会给您带来一些问题,所以我可能会使用数字,自动递增id
列。我会保留两个选项的答案以备将来参考。