将非唯一的非主键链接为外键关系

时间:2015-06-18 10:50:35

标签: sql

我有两个表,第一个叫做宗教,它有这个列(代码,英文名称,描述)

这是它的记录 代码ename 20 Chirstian 30 Jwiesh 40其他 50佛教徒 60科普特人 70印度教 联合国未知

第二个名为person的表,其中一个列是" religion" ,宗教在人桌上是宗教的代码

这里我想链接"代码"用"宗教"在桌上的人,他们两个都不是唯一的,我怎么能链接他们?

1 个答案:

答案 0 :(得分:0)

如果需要匹配它们并且它们不是唯一的,则可以在两个表之间创建连接表(例如:joinTable(id_tab1 int,id_tab2 int)),并在两个id列上创建聚簇主键。

由于缺乏给定的信息(如表格结构等),我不得不猜测你真正尝试的是什么。

我想到了这样的结构:

<强> TAB1

ID (PK)
... some other columns ...

<强> TAB2

ID (PK)
... some other columns ...

Tab1的多行可以链接到Tab2行,Tab2的多个Tows也可以链接到Tab1中的一行(M:N基数)。

在这种情况下,我上面的建议如下:

<强> JoinTab

ID_Tab1 (PK) (FK-> to Tab1)
ID_Tab2 (PK) (FK-> to Tab2)

PK是聚集的,这将防止重复。

希望我能正确地提出您的问题并帮助您。