資料庫表多對多的設計

2021-07-10 12:33:44 字數 509 閱讀 2509

先上問題!    

現在有a、b、c三張表,a和b是一對多的關係,b和c是一對一的關係,c和b是一對多的關係,a和c是多對多的關係。問題:是否設計第四張表專門存放a、b、c的關係,還是把關係維護在b表中?

原則:首先在資料庫中不建議建立三維關係。其實就是說一張表(關係表)不要維繫三個模型的的關係

設計思路er圖:

一共四張表,其中表2中有1和3的主鍵引用(可以設計為外來鍵),1和3有一張橋表4進行多對多關聯。

這個地方主要看你的a和c是否真的有直接關係,一定要分析清楚。a和c可能沒有關係,因為b的存在,他倆貌似有這麼乙個關係。如果a和c沒有關係,就不用建關係表4。

建議資料庫中,不要建外鍵約束。因為資料庫在進行寫表操作的時候會將該錶和該錶所有外來鍵指向表....指向的指向,等等一串表都要進行寫鎖保護,

那麼其他表的寫操作需要進行等待,造成不必要的效能問題。

資料庫表設計(一對多,多對多)

做乙個專案,必然是少不了資料庫設計的!在學習階段,基本都是單錶。然而在實際開發過程中,一對多,多對多的表處處都是!簡單整理一下,一對多,多對多表如何設計整理一下思路 資料庫實體間有三種對應關係 一對一,一對多,多對多。一對一關係示例 一對多關係示例 多對多關係示例 1.一對多關係處理 通過學生和班級...

資料庫 表關係 多對一

如何確定表之間的關係 需要從實際需求中分析 第一步 從員工的角度來考慮 多個員工是不是可以屬於同乙個部門?員工的多條記錄是否對應部門的一條記錄?如果是 則可以確定 員工與部門是多對一 第二步 從部門的角度來考慮 多個部門是不是可以有同乙個員工?員工部門多條記錄是否對應員工的一條記錄?都不是 而是乙個...

資料庫中的多對多的查詢

使用mybatis的問題呢,就得自己寫sql,當然使用mybatis generator 也能生成一部分,但一些就得自己寫。使用hibernate 與jpa 就很少需要寫了。不過不太靈活,比較繁瑣。可能只需要乙個簡單的sql語句就解決的問題就需要配置兩個物件之間的關聯關係,這個關聯關係在一些情況下不...