我有一個簡單的數據庫,我正在兩個表之間建立關係。所以我有這個第三張表,他們被鏈接。第三個表是否需要主鍵?因爲我所需要的只是將兩個表連接在一起,另外還有一個額外的列。你可以有2個外鍵,沒有主鍵?
3
A
回答
3
那種你所描述的表有時稱爲join table。您將在您加入的列中創建一個主鍵,這既是爲了獲得唯一性,又因爲它更有可能被索引以獲得更好的性能。
3
你所描述的是一個連接表。 是的,你可以做一個沒有主鍵(或者,另一個選項是一個複合主鍵 - 使兩個參考一個獨特的對,並使用它作爲唯一的識別鍵 - 但即使這不是必要的(注意:只是因爲它「沒有必要」並不意味着它不是「良好的實踐」;它通常不是一個好主意,有幾行具有完全相同的內容))。
使用這些條款,您應該能夠找到實施所需的答案。
相關問題
- 1. 我可以有一個表與數據庫的外鍵但沒有主鍵
- 2. 外鍵沒有主鍵要參考
- 3. 內部連接兩個表,都有沒有主鍵的外鍵?
- 4. 內有2個外鍵連接到一個主鍵
- 5. 主鍵和外鍵2
- 6. MySQL的插入2個表一次有主鍵和外鍵
- 7. 選擇不具有外鍵的主鍵或沒有足夠的外鍵
- 8. 外鍵可以作爲主鍵嗎?
- 9. 外鍵可以唯一主鍵
- 10. 將外鍵作爲主鍵可以嗎?
- 11. 加入3和表2具有主鍵和第三個具有兩個外鍵
- 12. 有沒有像主鍵和輔助鍵?
- 13. 表沒有主鍵
- 14. 沒有主外鍵匹配的表
- 15. 學說2沒有建立外鍵
- 16. 具有包含2列的主鍵的表的外鍵引用
- 17. 跨2個表引用2個主鍵的外鍵?
- 18. 單個外鍵可以指向多個主鍵嗎?
- 19. 有主鍵和外鍵的drop table
- 20. 有重複的外鍵和無主鍵
- 21. 是否有可能有一個外鍵沒有覆蓋引用表的整個主鍵?
- 22. 有多個外鍵的鍵
- 23. 當主鍵沒有主鍵時,mysql主鍵重複輸入
- 24. 多少外鍵,你可以在SQLite表
- 25. MySQL 2外鍵到相同的主鍵
- 26. 外鍵的表2列主鍵(CompositeId)
- 27. 休眠2主鍵作爲外鍵
- 28. 2 django模型主鍵和外鍵
- 29. indexedDB是否支持外鍵?如果沒有,我可以模擬外鍵嗎?
- 30. 你可以給出的主要和外鍵的例子在sql
你必須有一個主鍵,但是這兩個外鍵可以形成一個複合主鍵。 –
你通常不需要「必須有主鍵」 - 但你應該有一個! (@Luben Todorov) – DRobinson
我不同意,事實上這是一個很可愛的論點。 @DRobinson [是的,我們必須有主鍵](http://stackoverflow.com/questions/840162/should-each-and-every-table-have-a-primary-key),除非我們屬於這些特殊情況下。 –