【问题标题】:database design - table normalization数据库设计 - 表规范化
【发布时间】:2011-04-18 07:31:31
【问题描述】:

我想允许用户在线创建他们的简历。简历创建将有一些步骤。第一步简历将被保存。他可以稍后为其他步骤输入数据,或者他可以在第一步之后进入下一步。

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

第 2 步工作经历: 求职意向 最近的职位 上一个职位(他可以输入尽可能多的职位)

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

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

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

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

【问题讨论】:

    标签: database-design normalization


    【解决方案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
    

    【讨论】:

    • 同意!数据库模式应该针对实体进行设计。前端逻辑对前端的影响应该最小
    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 2013-01-18
    • 2011-07-25
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 2012-08-10
    相关资源
    最近更新 更多