我试图弄清表之间的关系以及所有表之间如何相互联系的概念。
假设我有一个“人”表(名字,姓氏等),其中主键是社会保险号。
我还有一个只有2列的消防员表-加入消防队时的日期和唯一的消防员编号。第三列将是指向个人表的链接。
最初,我在Fireman表中使SSN成为链接到Person表中SSN的外键。但这是否意味着每次创建一个新的Fireman时,我都可以反复使用相同的SSN?不会违反外键约束-所以它的“一切都很好”-但不是我想要的。是否有意义?我不想允许所有共享相同SSN号码的不同唯一消防员号码。那么我该如何设置-什么是主要的,什么是外国的,什么是一对一的以及什么是一对多的。
答案 0 :(得分:0)
一对一的键可以同时是主键和外键。
您可以从Fireman
表中删除主键,而只需使用SSN
作为唯一键。由于它是一对一的,因此不需要单独的标识符。
或者,您可以在消防员表的SSN列上创建唯一索引。这样可以防止重复输入。
请注意,数据验证,关系和索引都是独立的内容。您可以使用索引和关系来验证数据,但也可以使用不同的概念,例如约束。