3

伙计们,如果有人可以帮助我,我将不胜感激。我在将记录插入一对多关系数据库时遇到问题。场景如下,我有一个技术人员表(techid,name,surname)和一个技能表(skillid,skillDesc,techid)。技能表有一个 techID 外键。

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

4

2 回答 2

2

我认为您应该有三个表:Technician(techid, name, surname)、Skill(skillid, SkillDesc) 和Ability(skillid, techid)。如果您只有两个表,则技能到技术人员的每个映射都必须包含技能描述的副本,这是冗余信息。相反,您希望使用表格来定义 Technician 对象和 Skill 对象,并使用第三个表格来捕获它们之间的关系。

首先执行这个查询:

insert into technician values (my_id, my_name, my_surname)

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

for skill in skills:
    insert into Ability values(skill, my_id)
于 2012-08-08T21:08:48.443 回答
1

您需要三个表 Technician、Skill 和 TechnicianSkill。使用两个表,您不能将多个技能分配给单个技术人员。(如果 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) 
于 2012-08-08T21:07:39.263 回答