我是否违反了数据库设计中的任何 NF 规则?

new*_*bie 8 normalization database-design

我是创建数据库的新手...我需要为我的招聘网络应用程序创建它。

我的申请需要安排申请人的筛选、考试和面试,并将结果保存在数据库中。

我的数据库架构如下:

在此处输入图片说明

我的问题是我applicant_id在其他表格中包含了...例如考试、面试、考试类型。

我是否违反了任何规范化规则?如果我这样做了,你有什么建议来改进我的设计?

小智 10

除了规范化之外,几乎没有什么需要考虑的。例如,您有一个 AGE 列。你会每年更新吗?你怎么知道什么时候这样做?多年的经验也是如此。

对于每个申请人,有些列可能有多个值:学校、课程等。

您可能还想检查您对这些关系的可选性。现在,申请人必须参加相关的考试,但考试不一定要与申请人相关联。我猜这与现实生活中的事情是相反的。您在所有其他关系中都有类似的问题。

如果您在创建关系后读出它们,它会有所帮助。


Mar*_*ian 5

我猜您实际上需要在您的申请人表和其他主表(主要是筛选和考试)之间建立多对多的关系。如果您的筛选包含多个申请人(其他表格的情况类似)。

我会看到一个候选人的面试,但会有不止一个候选人的考试或筛选会议。在这种情况下,您将需要一个将筛选与申请人联系起来的关系表。

请参阅此处了解多对多关系。