1. 程式人生 > >工程上為什麼建表時不設定外來鍵?

工程上為什麼建表時不設定外來鍵?

問題

一直有個疑惑,在大型工程上表之間的外來鍵關係只在ER圖上體現,卻沒有在建表的時候設定外來鍵(如往資料庫新建表時對外來鍵沒有限制),問了架構師和查閱相關資料後整理了一下。

總結

  • 在大型系統中(效能要求不高,安全要求高),最好使用外來鍵(外來鍵可以增強資料庫資料的完整性和一致性)

  • 在大型系統中(效能要求高,安全自己控制),不用外來鍵(有外來鍵約束的話,插入欄位會進行檢查,影響效率)

  • 小系統,最好用外來鍵

  • 用外來鍵要適當,不能過分追求

  • 不用外來鍵而用程式控制資料一致性和完整性時,應該寫一層來保證,然後具體應用通過這個層來訪問資料庫(比如外來鍵約束都轉交給dao層)