保证行的唯一性(数据库)

问题描述:

我正在概念化数据库。我想要一个包含3列的表格(其中1个是PK,另外2个是FK),我想让每个组合的列只能有一个元素。两个外键是否足以保证两者组合的唯一性? (对于这两列,只能有一行具有相同的值组合)。我是否也应该让它们成为复合独特的关键?保证行的唯一性(数据库)

+0

当你说行时,你是指列吗? – briantyler 2013-02-17 21:52:23

+0

@ TheMouthofaCow是的,对不起。感谢您的注意。 – Artie 2013-02-17 21:59:18

事实上,两个外键都足以保证两者组合的唯一性?

没有。

它应该也使他们成为一个复合独特的关键?

正确。如果你创建一个包含它们的复合唯一密钥 - 你保证这些对是唯一的(除非它们接受NULL的值)

+0

谢谢:)。作为一个后续问题:如果他们是一个复合主键,唯一性将得到保证以及正确? – Artie 2013-02-17 22:03:28

+0

@ Arthurso:是的PS:但我个人更喜欢避免复合主键。还有自然的主键。 – zerkms 2013-02-17 22:13:16