資料庫設計時是否要加入外來鍵

2021-06-21 22:07:18 字數 465 閱讀 1356

最近做專案的時候在討論表與表之間的關係是否需要建立外來鍵約束,

建立外來鍵的好處:

1) 由資料庫保證資料完整性,比程式保證完整性更可靠,

多應用時(如有應用a,b,c他們之間的實體存在關聯關係),由程式來保證資料完整性變得困難

2) 外來鍵約束使得資料庫的er圖可讀性變強,有助於業務邏輯設計

不建立外來鍵的好處:

1) 可以用觸發器或應用程式保證資料的完整性

2) 開發變得簡單,維護資料時不用考慮外來鍵約束

3) 效能高,大資料量插入操作時不用考慮維護外來鍵

討論結果:不建立外來鍵約束,關聯關係由程式控制,另外還需要刪除現有的外來鍵關係

從物件導向設計的角度來看。是應該取消掉外來鍵約束的。因為資料庫的作用就是高校的訪問資料。而不是表達業務邏輯關係。把業務邏輯關係放到資料庫中來維護是一種非常面向過程的思維。使得程式設計,用例規則直接面向資料庫而不是面向業務。怎麼看都不是一種好的方式。

關於資料庫設計是否需要加入 建立 外來鍵

從物件導向設計的角度來看,應該取消掉外來鍵約束,因為資料庫的作業就是高效的訪問資料。而不是表達業務邏輯關係。建立外來鍵的好處 1 由於資料庫保證資料完整性,比程式保證完整性更可靠,多應用時,由程式來保證資料完整性變得困難 2 外來鍵約束使得資料庫的er圖可讀性變強,有助於業務邏輯設計 不建立外來鍵的...

資料庫設計外來鍵

今天心情很煩躁,公司來了新員工,我感覺到自己這個渣渣要晚年不保啊,隨後就隨便網上逛逛,看到這個挺有意思。設計外來鍵竟然還有人不會?哈哈哈,這不是說我呢嘛!外來鍵一般用於一對多的時候,比如說某個型別type下面可能有多個物件。訂單的話,乙個訂單號肯定會有關於這個訂單 號碼 的訂單詳情,這是給客戶看的,...

設計資料庫時是否使用外來鍵

外來鍵是否採用看業務應用場景,以及開發成本的,大致列下什麼時候適合,什麼時候不適合使用 1.網際網路行業應用不推薦使用外來鍵 使用者量大,併發度高,為此資料庫伺服器很容易成為效能瓶頸,尤其受io能力限制,且不能輕易地水平擴充套件 若是把資料一致性的控制放到事務中,也即讓應用伺服器承擔此部分的壓力,而...