我正在尝试在几个表之间建立关系,其中一个表中的唯一行集与另一个表中的行相关。
我想出了一个反映我想要完成的事情的场景。
在这种情况下,我们正在尝试根据他们拥有的一系列技能来确定应聘用新员工的角色。员工可以被赋予多个角色。例如,具有管理经验的软件工程师将获得软件工程师和技术主管角色。但是,给定的角色必须与给定的技能组完全对齐。如果新员工拥有我们正在寻找的所有技能,我们会给他们CTO角色。 CTO拥有软件工程师和技术主管角色的所有技能,但他们没有获得这些角色。
我认为我的问题归结为skill_set
关系,我试图将skill
表中的一组唯一行绑定到特定的skill_set
。任何给定的skill
都可以在多个skill_sets
中,但在查询skill_set
时,我只想返回包含所有skill_set
的{{1}},但目前我还不知道查询特定skills
我们不必担心尝试查找无效skill_set
的{{1}}列表的角色。那些人不会回来。
注意:此架构不是一成不变的。更改它绝对是一个选项,所以如果我错误地建模,我们可以解决这个问题。
skills
还提供了一个SQL小提琴:http://sqlfiddle.com/#!9/86bcfe0
一些示例输出:
鉴于技能:[' python']
返回默认角色:初级软件工程师
鉴于技能:[' python',' javascript']
返回默认角色:软件工程师
鉴于技能:[' ec2']
返回默认角色:DevOps Engineer
鉴于技能:[' python',' javascript','管理']
返回默认角色:Software Engineer,Tech Lead
鉴于技能:[' python',' javascript',' ec2',' docker',' management&# 39]
返回默认角色:CTO