1. 程式人生 > >關於數據庫設計是否需要加入(建立)外鍵

關於數據庫設計是否需要加入(建立)外鍵

建立 操作 項目 外鍵約束 總結 外鍵 困難 數據量 好處

從面向對象設計的角度來看,應該取消掉外鍵約束,因為數據庫的作業就是高效的存取數據。而不是表達業務邏輯關系。

建立外鍵的好處:

1、由於數據庫保證數據完整性,比程序保證完整性更可靠,多應用時,由程序來保證數據完整性變得困難

2、外鍵約束使得數據庫的ER圖可讀性變強,有助於業務邏輯設計

不建立外鍵的好處:

1、可以用觸發器或應用程序保證數據的完整性

2、開發變得簡單,維護數據時不用考慮外鍵約束

3、性能高,大數據量插入操作時不用考慮維護外鍵

總結:

不建立外鍵約束,關系由程序控制。另外還需要刪除現有的外鍵關系

我自己覺得完整性和一致性肯定是需要保證的,不然會出問題,也會影響效率,需要看你項目又多大。

小型項目就使用數據庫本身的,效率追求不高,也沒必要花時間自己建立約束,時間代價比較大。
較大型項目可能數據約束本身效率不夠好,滿足不了大項目對效率的要求,又有人力物力去支持建立自己的高效約束。
還有較大項目初期,想早點上線,效率要求沒有那麽大,沒時間去建立高效率約束,那麽就用數據庫本身的約束,項目初期要求穩定一些比較好。

關於數據庫設計是否需要加入(建立)外鍵