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


8

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

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

我的数据库架构如下:

在此处输入图片说明

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

我违反任何规范化规则吗?如果这样做,您建议如何改进我的设计?


1
我认为没有任何特定业务领域/企业知识的人不能只看您的数据模型并为您提供有关键,约束,数据类型等的切合实际的建议。不过,我可以告诉您,任何可空列都会违反对1NF的严格解释。
某天,2012年

Answers:


10

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

有些栏可能会为每个申请人提供多个值:学校,课程等。

您可能还需要检查这些关系的可选项。现在,申请人必须参加相关的考试,但是考试不必与申请人相关联。我猜这是现实生活中工作方式的倒退。您与其他所有关系都存在类似的问题。

创建关系后读出它们之间的关系会很有帮助。


1
除了表格和列之外,没有什么要考虑的事情了:)我国拥有数据保护法(数据保留期限,人有权访问其数据等)和年龄歧视法,这些法律应使雇主至少要三思而行在面试阶段记录某人的年龄之前。
一天,2012年

5

我想您实际上需要在申请人表和其他主表(主要是筛选和考试)之间建立多对多关系。如果您要进行筛查,则应包含一个以上的申请人(其他表格的情况与此类似)。

我会见到一个候选人的面试,但是会看到一个以上候选人的考试或筛选。在这种情况下,您将需要一个关联表,该表将链接筛选与申请人。

有关多对多关系,请参见此处

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.