如何在sql server中为这个结构设计数据库

时间:2014-02-25 10:52:33

标签: sql-server database database-design

在我的第一个表中,列是这是我的主表

ID
Position
jobDescription
minExp
maxExp
LastDate
InterviewDate
Project
HiringManager
interviewer
Primaryskills
SecondorySkills

和第二个表包含主要技能PrimarySkill表

ID
PrimarySkills

第三张表包含辅助技能

ID
SecondarySkills

第四张表包含访问员

问题是,如果一个人有多个技能和多个面试官,那么如何在Master表中插入主要技能表,辅助技能表和面试者表中的值。我不想以逗号分隔

存储值

2 个答案:

答案 0 :(得分:0)

您创建一个联结表,这是连接两者的第三个表(如果您normalize数据模型,则需要一些表)。示例模型将使用这些表:

Person (ID, Position, ...)
Skills (ID, Skill)
PrimarySkills (Person.ID, Skill.ID)
SecondarySkills (Person.ID, Skill.ID)

虽然可能不需要将技能分为主要和辅助技能,但最好添加一个布尔值来指示技能是主要技术还是辅助技能,如下所示:

PersonSkills (Person.ID, Skill.ID, IsPrimary (bool))

答案 1 :(得分:0)

您通常会通过一个只存储链接的额外表来执行多个链接,这样您就可以拥有多个具有相同MasterID的条目:

表PrimarySkillsLinks: MasterID PrimarySkillID