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

时间:2016-07-30 05:22:03

标签: database-design

设计

enter image description here

所以我需要为招聘方案设计数据库。共有7个表格包括:

  • 申请人:申请人数据
  • 位置:用于位置数据
  • 技能:技能数据
  • 申请人技能:申请人技能清单
  • 职位技能:职位所需的技能列表
  • 空缺:职位空缺列表
  • 申请:申请数据清单

我被告知我的设计有循环参考。我搜索了一些设计示例,但没有找到任何适合我的情况。所有表都是必需的,无法删除。我无法想出其他想法。

如何摆脱循环引用?谢谢。

3 个答案:

答案 0 :(得分:0)

正如您在此处所述,您的设计 没有任何循环引用。

  • 申请人,技能和职位没有参考。
  • 申请人技能,职位技能和职位空缺仅参考上述内容。
  • 申请仅涉及上述内容。
  • 那就是它。

所以你没有什么可以解决的。

(注意:我忽略了" Jobtitle ID"事情,因为相关的表格没有出现在你的图表中。但它看起来似乎并不依赖于任何表格无论如何,这些。)

答案 1 :(得分:0)

你担心什么?在你的模型上面的技能表并且它被取消了。

答案 2 :(得分:0)

此处没有通告,您可能遇到的唯一明显问题是没有强制执行备用键,在图表中这些通常标记为AK - 使用UNIQUE NOT NULL来创建它们。

以下是三个表的候选键。

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},因此它可能会失去同步并产生矛盾。