对于我的项目,我决定实施一个自由职业网站的数据库。 这是我的关系
Hirer(用户名,密码_hash,评级)primary_key->用户名
工人(用户名,密码,评级)primary_key->用户名
技能组(技能)primary_key->技能
Worker_Skills(用户名,技能)primary_key->(用户名,技能),forign-key(来自Worker的用户名和来自表技能组的技能)
收件箱(发件人,收件人,留言)
Job_posting(作业ID,标题,描述,海报' s_username,日期)
Job_skills(作业ID,技能)
应用(APPLICATION_ID,JOB_ID,申请人,详情)
所以,我在这里遇到了一些问题。第一个是,收件箱关系实际上并不是什么,因为一个人可以从同一个中心获得多个相同的消息。此外,在Job-skill和Worker-kill等技能的解析中,Job-id和Worker-username存在冗余。我该如何解决这个问题?
答案 0 :(得分:0)
不要在同一个问题中提出两个问题(或说明两个问题),因为它使答案变得困难。
'hirer'和'worker'表都应该有一个数字id作为主键,而不是用户名。因此,'WorkerSkills'表的每一行应该包含两个数字:worker的id和技能的id。您已通过作业正确完成此操作 - “作业发布”表的主键是ID,“JobSkills”表使用此ID以及技能ID。
然后,您可以编写一个查询,该查询可以显示哪些用户具有哪些作业所需的技能。