插入到sql数据库中的一对多关系

时间:2012-08-08 20:56:58

标签: sql sql-server stored-procedures

伙计我真的很感激,如果有人可以帮助我。我在将记录插入一对多关系数据库时遇到问题。场景如下,我有技术员表(技术人员,姓名,姓氏)和技能表(技能人员,技能人员,技术人员)。技能表具有techID外键。

如何创建一个sql语句/程序来插入具有分配给技术人员的多种技能的技术人员?

2 个答案:

答案 0 :(得分:2)

我认为你应该有三个表:技术员(技术员,姓名,姓),技能(技能,技能)和技能(技能,技术)。如果您只有两个表,则技能与技术人员的每个映射都必须包含skillDesc的副本,这是冗余信息。相反,您希望表格定义技术人员对象和技能对象,以及第三个表格来捕捉它们之间的关系。

首先执行此查询:

insert into technician values (my_id, my_name, my_surname)

然后循环技能(伪代码):

for skill in skills:
    insert into Ability values(skill, my_id)

答案 1 :(得分:1)

你需要三张桌子技师,技能和技术员技能。使用两个表格,您无法为单个技术人员分配多种技能。 (如果TechID和SkillID是主键)

Technician Table:
Columns: TechID, Name, SurName

Skill Table:
Columns: SkillID, SkillDesc

-- Put the TechID and SkillID as a foreign key in this table
TechnicianSkill Table:
Columns: TechID, SkillID 
-- You can make a primary key by using the two columns (TechID,SkillID)