我有两张桌子例如 - 个人和电子邮件
表 - 个人
专栏
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列和EMAIL_ID&之间。 EMAILS中的EMAIL_TYPE。
当我尝试定义外键关系时,我收到以下错误。
“表INDIVIDUALS中的列与现有主键或UNIQUE约束不匹配”
请让我知道如何处理这个并定义这种关系。
答案 0 :(得分:2)
为了实现目标,最好的设计是:
表格 - 个人栏目
Indv_ID (PK)
表格电子邮件列
Email_ID (PK) Email_Type (PK) Indv_ID (PK) Email_Address
所以:
**TABLE - INDIVIDUALS** Indv_ID 100 **TABLE - EMAILS** Email_ID Email_Type INDV_ID Email_Address 300 PERSONNEL 100 joe.john@yahoo.com 400 WORK 100 joe.john@abc.com
结论:
每个人都有很多电子邮件。您可以根据业务需要更改电子邮件表的主键。但这就是想法。
另一个提示:
考虑为整数类型或char值枚举您的Email_Type列。