我有一個表格供用戶使用。每個用戶都有他們教授的某些技能。因此,例如:如何設計此數據庫
- 鮑勃可以教空手道
- 路易絲可以教鋼琴和針織
- 羅傑可以教柔道,帆船,擊劍
這是我如何做了它在數據庫中:
Table users
pk: uid, name
1 Bob,
2 Louise,
3 Roger
Table skills
pk: sk_id, skill
1 karate,
2 piano,
3 knitting,
4 judo,
5 sailing,
6 fencing
Table user_skill (relationship between user and skills)
pk:usk_id, fk:uid, sk_id
1 1 1,
2 2 2,
3 2 3,
4 3 4,
5 3 5,
6 3 6,
我想t母雞顯示「羅傑擁有這些技能:柔道,basketweaving」
select name, skill
from users, skills, user_skill
where users.uid = user_skill.uid
and users.uid = 3
這是去了解正確的方式 - 無論是在設計表和查詢(MySQL的)的條款?
然後說我想與他們教區更新他們的個人資料:
- Bob可以在倫敦教空手道
- 路易絲可以教博爾頓鋼琴和針織曼徹斯特
- 羅傑可以教倫敦和曼徹斯特的柔道,在利物浦帆船和擊劍布拉德福德
所以我添加下面的表格:
Table cities
pk: city_id, city
1 London,
2 Manchester,
3 Liverpool,
4 Bolton,
5 Bradford,
但我很困惑,如何做的關係。我一直在寫它,並意識到它不工作,並再次開始,所以我顯然在某個地方出了問題。
您應該停止使用隱式語法。這是一個SQL Antipatten和一個非常差的編碼技術。 – HLGEM 2012-08-01 17:16:08
你的意思是在查詢中添加表名嗎?或者還有更多? – osman 2012-08-01 17:57:15