什麼是具有第一1之間的連接表的優點米關係?爲什麼有1連接表:M和第二個1:在下面的數據庫米關係在SQL
alt text http://dl.getdropbox.com/u/175564/db/db-simple.png
書喬·塞科的樹木和層次結構在SQL爲Smarties一說,原因是有1獨特的關係:米的。例如,以下表格可以讓用戶分別詢問完全相同的問題兩次,並分別給出完全相同的答案兩次。
第一個1:M的關係
users-questions
===============
user_id REFERENCES users(user_id)
question_id REFERENCES questions (question_id)
PK(user_id, question_id) // User is not allowed to ask same question twice
第二個1:M關係
questions-answers
=================
question_id REFERENCES questions(question_id)
answer_id REFERENCES answers(aswer_id)
PK(question_id, answer_id) // Question is not allowed to have to same answers
這樣做的好處有關唯一沒有說服我,使我的代碼更具挑戰性。 我不明白爲什麼我應該限制在db中使用相同ID的問題或答案的可能性,因爲我也許可以使用PHP來禁止這一點。
謝謝你的回答! – 2009-08-12 01:08:13
切勿將此類型的規則放在業務層中。這是要求數據完整性的麻煩。除了應用程序之外的其他事情可能會影響數據庫中的數據,從不依賴於只觸摸它的應用程序。必須始終執行的任何規則(如唯一性)必須位於數據庫中。 – HLGEM 2009-08-12 14:24:17