自由职业网站的数据库架构的效率和冗余?

时间:2014-12-07 00:55:40

标签: sql database-design

对于我的项目,我决定实施一个自由职业网站的数据库。 这是我的关系

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存在冗余。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

不要在同一个问题中提出两个问题(或说明两个问题),因为它使答案变得困难。

'hirer'和'worker'表都应该有一个数字id作为主键,而不是用户名。因此,'WorkerSkills'表的每一行应该包含两个数字:worker的id和技能的id。您已通过作业正确完成此操作 - “作业发布”表的主键是ID,“JobSkills”表使用此ID以及技能ID。

然后,您可以编写一个查询,该查询可以显示哪些用户具有哪些作业所需的技能。