伙计们,如果有人可以帮助我,我将不胜感激。我在将记录插入一对多关系数据库时遇到问题。场景如下,我有一个技术人员表(techid,name,surname)和一个技能表(skillid,skillDesc,techid)。技能表有一个 techID 外键。
如何创建 sql 语句/程序来插入具有分配给技术人员的多种技能的技术人员?
伙计们,如果有人可以帮助我,我将不胜感激。我在将记录插入一对多关系数据库时遇到问题。场景如下,我有一个技术人员表(techid,name,surname)和一个技能表(skillid,skillDesc,techid)。技能表有一个 techID 外键。
如何创建 sql 语句/程序来插入具有分配给技术人员的多种技能的技术人员?
我认为您应该有三个表: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)
您需要三个表 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)