MySql table 可能有*非常*多列
MySql table with potentially *very* many columns
一位招聘软件工程师的朋友希望我为他创建一个应用程序。
他希望能够根据技能搜索求职者的简历。
如您所想,可能有数百种,甚至数千种技能。
在 table 中代表候选人的最佳方式是什么?我在想 skill_1
、skill_2
、skill_n
等,但某个地方有一个候选人的技能超过 n
。
另外,未来可能会在数据库中添加更多技能。
那么,代表候选人技能的最佳方式是什么?
[更新] @zohar,这里是对 teh 模式的粗略第一遍。有什么意见吗?
您需要三个 table(至少):
table 候选人 ,其中将包含所有详细信息,例如姓名、联系信息、简历(或 link)以及所有其他相关详细信息。
一个 table 用于 skills - 将包含技能名称,可能还有简短描述(如果相关)
和一个 table 将候选人与技能联系起来 - candidatesToSkills - 这将与 table 和主要人员建立一对多关系key是候选人id和skill id的组合。
这是创建多对多关系的关系方式。
作为奖励,您还可以为技能水平添加一列 - 初级、中级、熟练、专家等。
您可能还想为职位空缺添加一个 table 和另一个 table 以将其与技能 table 联系起来,以便您可以轻松找到最合适的table 基于所需技能的职位候选人。 (但请注意,技能并不是唯一需要匹配的——其他需要匹配的点是地理位置、薪资期望等。)
一位招聘软件工程师的朋友希望我为他创建一个应用程序。
他希望能够根据技能搜索求职者的简历。
如您所想,可能有数百种,甚至数千种技能。
在 table 中代表候选人的最佳方式是什么?我在想 skill_1
、skill_2
、skill_n
等,但某个地方有一个候选人的技能超过 n
。
另外,未来可能会在数据库中添加更多技能。
那么,代表候选人技能的最佳方式是什么?
[更新] @zohar,这里是对 teh 模式的粗略第一遍。有什么意见吗?
您需要三个 table(至少):
table 候选人 ,其中将包含所有详细信息,例如姓名、联系信息、简历(或 link)以及所有其他相关详细信息。
一个 table 用于 skills - 将包含技能名称,可能还有简短描述(如果相关)
和一个 table 将候选人与技能联系起来 - candidatesToSkills - 这将与 table 和主要人员建立一对多关系key是候选人id和skill id的组合。
这是创建多对多关系的关系方式。
作为奖励,您还可以为技能水平添加一列 - 初级、中级、熟练、专家等。
您可能还想为职位空缺添加一个 table 和另一个 table 以将其与技能 table 联系起来,以便您可以轻松找到最合适的table 基于所需技能的职位候选人。 (但请注意,技能并不是唯一需要匹配的——其他需要匹配的点是地理位置、薪资期望等。)