0

所以我的意图是让“ ”包含对“ ”表Employee中相同主键的 2 个引用。EmployeeContactInformation这样做的原因是,我希望我的员工包含同一张表的 2 个不同副本。例如 1 代表work contact info,另一个代表home contact info

我将如何实现这一点以及我将使用什么关系?
我假设 1 到很多?

当前数据库截图

当前数据库截图

4

2 回答 2

0
  1. 员工可以有几个联系信息(你提到的家庭和工作)。所以因此关系应该是一对多的
  2. 要对此建模,您应该将关系一侧的外键添加到多侧中。因此,您应该在 EmployeeContact 表中添加一个employee_id 列。这样,每个员工联系人行都将连接到一个员工
  3. 员工表中的“工作分机”列可以移动到 EmployeeContact 表并重命名为“分机”,因为它是一个电话号码分机,可以用于家庭电话或工作电话
  4. EmployeeContact 表中的“家庭电话号码”列应重命名为“电话号码”,因为该表同时用于家庭和工作
  5. 应该在 EmployeeContact 表中保存另一列,该列保存有关工作/家庭的信息
于 2016-03-28T08:02:01.597 回答
0

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

  • 创建一个名为 ContactInfoTypes 的表。它将保存您想要的每个 ContactInfoTypes 的定义(在您的情况下:workContactInfo 和 homeContactInfo)。它将有两列(contactTypeId、contactTypeName)
  • 在 EmployeeContactInfo TABLE 中添加一个名为 ContactInfoType(DATATYPE 编号)的额外列。列 ContactInfoType 将Foreign-Key包含上述 TABLE Con​​tactInfoTypes 的值

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

于 2016-03-28T08:41:52.180 回答