2

例如,我有两个表 - 个人和电子邮件

表 - 个人列
Indv_ID (PK)
Email_ID

表格电子邮件列
Email_ID (PK)
Email_Type (PK)
Email_Address

这个想法是同一个人可以有多个电子邮件。因此,如果 Joe 有两封电子邮件,并且 joes ID 为 100。

**TABLE - INDIVIDUALS**
Indv_ID           Email_ID
100               200

**TABLE - EMAILS**
Email_ID        Email_Type      Email_Address
200             PERSONNEL       joe.john@yahoo.com
200             WORK            joe.john@abc.com    

现在,我正在尝试定义这种关系。基本上,在 INDIVIDUAL 中的 EMAIL_ID 列和 EMAILS 中的 EMAIL_ID 和 EMAIL_TYPE 之间。

当我尝试定义外键关系时,出现以下错误。

“表 INDIVIDUALS 中的列与现有主键或唯一约束不匹配”

请让我知道如何处理并定义这种类型的关系。

4

1 回答 1

2

为了实现您的目标,最好的设计是:

表 - 个人列

Indv_ID (PK)

表格电子邮件列

Email_ID (PK)
Email_Type (PK)
Indv_ID (PK)
电子邮件地址

所以:

**表 - 个人**
Indv_ID           
100               

**表格 - 电子邮件**
Email_ID Email_Type INDV_ID Email_Address
300 人 100 joe.john@yahoo.com
400 工作 100 joe.john@abc.com    

结论:

每个人都有许多电子邮件。您可以根据业务需要更改电子邮件表的主键。但这就是想法。

另一个提示:

考虑为整数类型或字符值枚举您的 Email_Type 列。

于 2013-01-30T12:54:13.420 回答