繁体   English   中英

2个外键引用1个主键

[英]2 foreign keys referencing 1 primary key

因此,我的目的是使“ Employee ”在“ EmployeeContactInformation ”表中包含对同一主键的2个引用。 这样做的原因是,我希望我的员工包含同一张表的2个不同副本。 例如1表示work contact info ,另一个表示home contact info

我将如何实现这一目标,并使用什么关系?
我假设一对多吗?

当前数据库截图

当前数据库截图

  1. 员工可以有多个联系信息(像您提到的那样在家和工作)。 因此,这种关系应该是一对多的
  2. 要对此建模,您应该将关系一侧的外键添加到多侧。 因此,您应该在EmployeeContact表中添加一个employee_id列。 这样,每个员工联系人行将连接到一个员工
  3. 员工表中的“工作分机”列可以移动到EmployeeContact表并重命名为“分机”,因为它是电话号码分机,可以用于家庭电话或工作电话
  4. EmployeeContact表中的“家庭电话号码”列应重命名为“电话号码”,因为该表既用于家庭又用于工作
  5. 应该在EmployeeContact表中保存另一列,该表保存有关工作/家庭的信息

让我们更改数据库的设计:

  • 创建一个名为ContactInfoTypes的表。 它将保存所需的每个ContactInfoType的定义(在您的情况下:workContactInfo和homeContactInfo)。 它将具有两列(contactTypeId,contactTypeName)
  • 在EmployeeContactInfo表格中添加一个额外的列,命名为ContactInfoType(DATATYPE号)。 列ContactInfoType将持有TABLE Con​​tactInfoTypes以上的Foreign-Key

当您在TABLE:EmployeeContactInfo中插入联系人时,您将必须Insert两行(其中一行具有针对workContactInfo存储的数字值,另一行具有homeContactInfo存储的值)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM