2014-12-07 35 views
0

對於我的項目,我決定實施自由職業者網站的數據庫。 這裏是我的關係自由職業者網站的數據庫模式的效率和冗餘?

租船人(用戶名,password_hash,評級)primary_key->用戶名

工人(用戶名,密碼,等級)primary_key->用戶名

技能(技能)primary_key->技能

Worker_Skills(用戶名,技能)primary_key - >(用戶名,技術人員),forign密鑰(從工人的用戶名和,從表技能的技能)

收件箱(發件人,Reciever,消息)

Job_posting(工作-ID,標題,描述,poster's_username,日期)

Job_skills(作業ID,技能)

應用程序(APPLICATION_ID,JOB_ID,申請人的詳細信息)

所以,我在這裏遇到了一些問題。第一個是,收件箱關係實際上並不是什麼,因爲從同一個中心可以有多個相同的信息。同樣,解決Job-skill和Worker-kill等技能,Job-id和Worker-username也有冗餘。我該如何解決這個問題?

回答

0

不要在同一個問題中提出兩個問題(或說明兩個問題),因爲回答困難。

'hirer'和'worker'表都應該有一個數字ID作爲主鍵,而不是用戶名。因此,「WorkerSkills」表的每一行都應該包含兩個數字:工人的ID和技能的ID。你已經正確地完成了這項工作 - '工作發佈'表的主鍵是一個id,'JobSkills'表使用這個id以及技能ID。

然後你可以寫一個查詢,它可以顯示哪些用戶具有哪些工作所需的技能。

+0

爲什麼downvote? – 2014-12-09 08:36:46