首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >招聘数据库设计中的循环参考

招聘数据库设计中的循环参考
EN

Stack Overflow用户
提问于 2016-07-30 05:22:03
回答 3查看 515关注 0票数 1

设计

所以我需要为招聘场景设计数据库。有7张表格,包括:

  • 申请人:申请人资料
  • 职位:用于职位数据
  • 技能:用于技能数据
  • 申请者技能:申请者技能列表
  • 职位技能:职位所需技能列表
  • 空缺:空缺名单
  • 申请:申请资料清单

有人告诉我,我的设计有一个循环参考。我找了一些设计的例子,但没有找到适合我的例子。所有的表都是必需的,不能移除。我想不出别的主意了。

如何去掉循环引用?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-31 13:14:39

这里没有循环,唯一明显的问题可能是没有强制执行备用键,在图表中这些键通常被标记为AK --使用UNIQUE NOT NULL创建它们。

这是这三个表的候选键。

代码语言:javascript
复制
ApplicantSkill {APPLICANT_ID, SKILL_ID, APPLICANT_SKILL_ID}
           KEY {APPLICANT_ID, SKILL_ID}
           KEY {APPLICANT_SKILL_ID}

PositionSkill {POSITION_ID, SKILL_ID, POSITION_SKILL_ID}
          KEY {POSITION_ID, SKILL_ID}
          KEY {POSITION_SKILL_ID}

Application {APPLICANT_ID, VACANCY_ID, APPLICATION_ID}
        KEY {APPLICANT_ID, VACANCY_ID}
        KEY {APPLICATION_ID}

您已经引入了代理键(额外的_ID),并选择它们作为这些表的主要内容,但是忽略了其他(AK) --非常容易出错,容易产生重复、冗余和矛盾。

而且JOB_TITLE_ID应该从Application中删除,它看起来像是存在依赖{POSITION_ID} --> {JOB_TITLE_ID},因此它可能会失去同步,从而产生矛盾。

票数 0
EN

Stack Overflow用户

发布于 2016-07-30 05:44:29

正如您在这里介绍的,您的设计没有任何循环引用。

  • 申请人、技能和职位没有推荐人。
  • 申请者技能、职位技能和空缺仅指上述内容。
  • 申请仅指上述情况。
  • 仅此而已。

所以你没什么可修的了。

(注意:我忽略了“职务名称ID”这件事,因为相关的表没有出现在图表中。但不管怎么说,这张桌子似乎不会依赖于任何一个。)

票数 0
EN

Stack Overflow用户

发布于 2016-07-30 13:37:08

你在担心什么?技能表在你的模型之上,它是不依赖的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38670608

复制
相关文章

相似问题

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