25
A
回答
26
是的。確保您沒有孤兒(沒有父母的條目),並根據使用情況,如果您定義級聯刪除,則在刪除父母時,其所有孩子也將被刪除。
與其他外鍵一樣,缺點是輕微的性能下降。
4
是的,你應該把它作爲一個外鍵。
好處將是一個更好的冗餘數據模型。
13
是的,你應該。如果在數據庫關係中有一個屬性作爲同一數據庫中另一個關係的主鍵,則應將其設置爲FK。
您將享受advantages associated to foreign keys:
- 假設關係的合理設計,外鍵約束變得更加困難了程序員不一致性引入數據庫。
- 集中數據庫服務器對這些約束的檢查使得不必在應用程序端執行這些檢查。這消除了不同的應用程序可能不以相同的方式檢查約束的可能性。
- 使用級聯更新和刪除可以簡化應用程序代碼。
- 正確設計的外鍵規則有助於記錄表之間的關係。
缺點:
- 如果定義外鍵,有時是很難進行批量操作。
- 也許它意味着更多的磁盤使用和輕微的性能影響。
5
是的,你應該。
優勢(如任何外鍵):
- 確保PARENT_ID引用表中的一個真正的行
- 防止有孩子,或確保刪除級聯刪除父的意外刪除孩子們也
- 提供信息的優化器可以使用
我想不出任何真正的缺點。
相關問題
- 1. 該表應該自引用嗎?
- 2. Django會自動爲外鍵列生成索引嗎?
- 3. 我應該在postgresql 9.3中使用散列或btree作爲外鍵索引嗎?
- 4. 我應該真的使用外鍵嗎?
- 5. 我應該索引一個外鍵?我應該使用這張表的主鍵嗎?
- 6. 我應該爲每個外鍵創建索引嗎?
- 7. 應該添加使用日期和外鍵的標識列嗎?
- 8. 我應該使用外鍵連接這3個表嗎?
- 9. 你應該在Python中使用屬性引用嗎?
- 10. 自引用外鍵
- 11. 如何在該表中使表的屬性成爲外鍵?
- 12. 不應該django待辦事項列表示例使用外鍵自我?
- 13. 我應該使用SQL Server關鍵字作爲列名嗎?
- 14. 外鍵可以引用多個表嗎?
- 15. XNA/DirectX:你應該總是使用索引嗎?
- 16. MySQL:使用引用由外鍵組成的主鍵的外鍵創建表
- 17. 我應該使用列表嗎?
- 18. 引用的外鍵具有錯誤的列號。應該是2
- 19. 我應該避免使用主鍵並使用索引唯一的列嗎?
- 20. MySQL外鍵:我應該設置它嗎?
- 21. 即使使用slf4j,你應該保護你的日誌嗎?
- 22. 你應該索引一個多對多的表嗎?
- 23. 引用自己的表的外鍵?
- 24. 我應該使用外鍵或不
- 25. Django自引用外鍵
- 26. 該表應該分成兩部分嗎?
- 27. 應該使用基本關鍵字嗎?
- 28. MySQL表。我應該使用交叉引用表嗎?
- 29. 你應該遮蔽你的依賴嗎?
- 30. 我應該使用外鍵的外鍵還是字符串值?
「無子孤兒」? ;-) – Yarik 2008-11-15 20:23:06