1. 程式人生 > >實體間的關係:1:1,1:N,M:N

實體間的關係:1:1,1:N,M:N

*實體之間的關係*

1)1對1關係:

兩個實體表內,存在相同的主鍵欄位。

  1.1)設計:

         如果記錄的主鍵值等於另一個關係表內記錄的主鍵值,則兩條 記錄對應,1:1對應。


例子:

#表一:學生資訊表          #表二:學生詳細資訊表


學生主鍵   學號   姓名    *     學生主鍵   生日   住址
               *
  1    1101      張三     *        1    10.15   北京
  2    1102      李四     *        2       12.15   上海


【注意】:
垂直分隔在優化的角度上來講,如果說一個表內的欄位過多,就應該將其拆分出來,
分為哪些常用和哪些不常用,同時分割成兩個或者多個表,只要每一個表內有相同的主鍵就行。


2)一對多關係:
      一個實體對應多個其它實體。
例如:一個班級對應多個學生。


    2.1)設計:
      在多的那端,增加一個欄位,用於指向該實體所屬的另外的實體的標識。

例子:

#表一:學生主資訊表         #表二:班級表


學生主鍵   學號   姓名   班級號    *   班級主鍵   開班時間   課程
  1     1101   張三        8        *      8    2018-08-10   JAVA


  3        1102   李四        9        *      9    2018-10-10   LINUX
  5        1103   王五        8     *
  6        1104   趙四     8        *


3)多對多關係:

    3.1)設計:
        利用一箇中間關係表來表示實體之間的對應關係。

例子:

#表一:老師資訊表        #表二:班級資訊表


講師主鍵   名字    *      班級主鍵   班級名
1          趙四    *          10      1101
3          張三    *          15           1105

 

想要表達表一和表二之間的多對多關係(趙四教了1105班;張三教了1101和1105班),需要藉助一箇中間關係表。

#表三:中間關係表
講師主鍵   班級主鍵
1       1105
3       1101
3       1105

 

 

【注意】

    中間表的每個記錄,表示一個關係。