首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用1个主键的2个外键

引用1个主键的2个外键
EN

Stack Overflow用户
提问于 2016-03-28 07:43:30
回答 2查看 1.3K关注 0票数 0

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

我将如何实现这一点,我将使用什么样的关系?

我假设一比多?

当前数据库截图

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-28 08:41:52

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

  • 创建一个名为ContactInfoTypes的表。它将保存您想要的每个ContactInfoTypes的定义(在您的例子中: workContactInfo和homeContactInfo)。它将有两列(contactTypeId,contactTypeName)
  • 在ContactInfoType表中添加一个额外的列,命名为EmployeeContactInfo (DATATYPE )。列ContactInfoType将保存上表ContactInfoTypes的Foreign-Key值。

当您在表: EmployeeContactInfo中插入联系人时,您将不得不Insert两行(其中一行的数值存储在workContactInfo上,另一行的值存储在homeContactInfo中)。

票数 0
EN

Stack Overflow用户

发布于 2016-03-28 08:02:01

  1. 员工可以有几个联系人信息(家庭和工作,如您提到的)。因此,这种关系应该是一对多的。
  2. 要建模这一点,您应该添加一个外键的一方的关系到多个方面。因此,您应该在employee_id表中添加一个EmployeeContact列。这样,每个员工联系人行都将连接到员工。
  3. 员工表中的“工作扩展”列可以移动到EmployeeContact表中,并将其重命名为“扩展”,因为它是用于家庭电话或工作电话的电话号码分机。
  4. EmployeeContact表中的“家庭电话号码”列应该重命名为“电话号码”,因为该表用于家庭和工作。
  5. 应该在EmployeeContact表中保存另一列,该列保存有关工作/家庭的信息
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36258086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档