2个外键引用1个主键
2 foreign keys referencing 1 primary key
所以我的目的是让“Employee
”包含 2 个对“EmployeeContactInformation
”table 中相同主键的引用。这样做的原因是,我希望我的员工包含相同 table 的 2 个不同副本。例如。 1 个用于 work contact info
,另一个用于 home contact info
。
我将如何实现它以及我将使用什么关系?
我假设 1 到许多?
当前数据库截图
- 员工可以有多个联系信息(如您提到的家庭和工作)。因此,关系应该是一对多
- 要对此建模,您应该将关系一侧的外键添加到多侧。因此,您应该在 EmployeeContact table 中添加一个 employee_id 列。这样每个员工联系人行都将连接到一个员工
可以将员工 table 中的 - "Work extension" 列移至 EmployeeContact table 并重命名为 "extension",因为它是一个 phone 号码分机,可以是为了家 phone 还是为了工作 phone
EmployeeContact table 中的 - "Home phone number " 列应重命名为 "phone number",因为 table 既适用于家庭也适用于工作
- 应在 EmployeeContact table 中保存另一列,该列保存有关 work/home
的信息
让我们更改数据库的设计:
- 创建一个名为 ContactInfoTypes 的 table。它将包含您想要的每个 ContactInfoTypes 的定义(在您的例子中:workContactInfo 和 homeContactInfo)。它将有两列(contactTypeId,contactTypeName)
- 在您的 EmployeeContactInfo TABLE 中添加一个名为 ContactInfoType(DATATYPE 编号)的额外列。列 ContactInfoType 将包含
Foreign-Key
高于 TABLE ContactInfoTypes
的值
当您在 TABLE: EmployeeContactInfo 中插入联系人时,您必须 Insert
两行(一行包含针对 workContactInfo 存储的数值,另一行包含 homeContactInfo)。
所以我的目的是让“Employee
”包含 2 个对“EmployeeContactInformation
”table 中相同主键的引用。这样做的原因是,我希望我的员工包含相同 table 的 2 个不同副本。例如。 1 个用于 work contact info
,另一个用于 home contact info
。
我将如何实现它以及我将使用什么关系?
我假设 1 到许多?
当前数据库截图
- 员工可以有多个联系信息(如您提到的家庭和工作)。因此,关系应该是一对多
- 要对此建模,您应该将关系一侧的外键添加到多侧。因此,您应该在 EmployeeContact table 中添加一个 employee_id 列。这样每个员工联系人行都将连接到一个员工 可以将员工 table 中的
- "Work extension" 列移至 EmployeeContact table 并重命名为 "extension",因为它是一个 phone 号码分机,可以是为了家 phone 还是为了工作 phone EmployeeContact table 中的
- "Home phone number " 列应重命名为 "phone number",因为 table 既适用于家庭也适用于工作
- 应在 EmployeeContact table 中保存另一列,该列保存有关 work/home 的信息
让我们更改数据库的设计:
- 创建一个名为 ContactInfoTypes 的 table。它将包含您想要的每个 ContactInfoTypes 的定义(在您的例子中:workContactInfo 和 homeContactInfo)。它将有两列(contactTypeId,contactTypeName)
- 在您的 EmployeeContactInfo TABLE 中添加一个名为 ContactInfoType(DATATYPE 编号)的额外列。列 ContactInfoType 将包含
Foreign-Key
高于 TABLE ContactInfoTypes
当您在 TABLE: EmployeeContactInfo 中插入联系人时,您必须 Insert
两行(一行包含针对 workContactInfo 存储的数值,另一行包含 homeContactInfo)。