【发布时间】:2019-05-02 16:25:41
【问题描述】:
下面的架构图。基本上,最底层是技能,然后是工作,然后是候选人(暂时忽略公司)。每个技能可以关联多个工作,一个工作可以有多个技能。每个职位适用于一个候选人,该候选人可以拥有(拥有)多个(历史)职位,每个职位都在一家公司。
我只是无法找出所有具有 X 技能的候选人的查询。
事实上,它变得复杂了,因为 X 不只是一个技能,它可以是多个技能,带有布尔运算符,例如
找到所有具有 (skill="C++" and Skill="UML") 和 NOT(skill="Python") 的候选人
(skill="C++" and skill="UM"L) and NOT(skill="Python") 部分是一个字符串,它应该包含一个有效的 ,SQl 子查询,但我不知道查询的其余部分。
[更新]当我说“例如”时,我并不是指那个查询字符串。我正在尝试找到一种方法来处理任何查询字符串的技能。例如skill=VB 或skill=VB and skill=C 或skillFreeRTOS and not skill=Windows
顺便说一句,架构来自this question 的答案,我觉得不错,但是...
【问题讨论】:
-
但是根据图表,候选人没有技能,只有工作有技能。
-
一些示例数据可能会有所帮助...
-
@JoakimDanielson 这正是我的难处。我认为我想找到与技能条款匹配的每个工作,然后为每个工作获取候选人并将其返回。但是,我不知道怎么做:-(
-
如果每个技能可以关联多个工作,并且一个工作可以有多个技能,那么技能和工作之间就存在多对多的关系。但我没有看到可以建立这种关系的链接表。
-
每个技能在
skills表中都有一个job_id- 您是从技能到工作的“上升”链接,而不是从工作到其技能的“下降”链接(我的架构错了吗? )请查看this question的答案,谢谢