数据库设计 - 表规范化

时间:2010-09-28 13:33:50

标签: database-design normalization

我想允许用户在线创建简历。简历创建将有一些步骤。第一步后,将保存恢复。他可以稍后输入其他步骤的数据,也可以在第一步后转到下一步。

第1步个人信息: 标题 名称 地址 电话 电子邮件

第2步就业历史: 职业目标 最近的立场 以前的位置(他可以尽可能多地输入职位)

第3步教育: (标题,完成年份等)(很多)

第4步技能: 非技术 计算机技能(很多)

我已经决定将有一个表格,用于不需要多个条目的字段。例如,用户将拥有许多计算机技能,教育,之前的职位,这就是为什么他们都将使用唯一的resumeID进入其他表,其余的字段将保留在简历表中。

根据数据库是优雅的方法吗?或者我应该为每个步骤制作单独的表格,因为会有单独的表格,我很容易处理。

1 个答案:

答案 0 :(得分:1)

规范化是非冗余信息,换句话说:可能没有条目的重复。

您的计划可能如下:

Person -> has 1 or many EmploymentHistory
       -> has 1 or many Education
       -> has 1 or many Skill

您可以自己决定如何设置它。您可以在设计的表格中创建一组教育和技能对象,或者按照上面的方式执行。如果您创建教育和技能表,您的方案可能如下所示:

Person -> 1 or many -> LinkTable PersonToEducation -> 1 or many -> Education
       -> 1 or many -> LinkTable PersonToSkill     -> 1 or many -> Skill