1. 程式人生 > >數據庫----四種設計模式

數據庫----四種設計模式

des 從表 情況 存在 pos 有一個 年齡 主從模式 屬性。

數據庫----四種設計模式

  設計模式(Design Pattern)是一套被反復使用、多數人知曉的、經過分類的、代碼設計經驗的總結。


主擴展模式


  一般應用於提取不同類型的對象的共同特征。比如學校當中,對於上課而言分為
老師和學生,但對於食堂大媽或者門衛大爺而言,就看你是不是校內人員。這是一種包含
關系。即校內人員包括 學生、老師、其他工作人員。如果做一個簽到系統,就設定校內
人員為user表,老師、學生之類的單獨成表,但是都維護同樣的userid同時作為二者的主

鍵。使之稱為1對1的關系。這種模式就是主擴展模式。

  擴展表的主鍵既是擴展表的主鍵也是主表的外鍵

主從模式


  主從模式的應用場景最多。是典型的一對多的關系。比如貼吧的實現,整個
吧就是一個主表。而貼吧有許多的從表就是不同樓主發的帖子,而每個帖子有用很多從表
那就是每個樓所對應的信息。

名值關系


  主要處理系統設計階段還不能完全確定的屬性的對象。這些對象的屬性在系統運
行時會有很大的變更,或者是多個對象之間的屬性存在很大的差異。
  比如說一個學生的表,記錄了一些學生必須有的屬性:年齡身高體重姓名什麽的。但是突然有
一天有一個人穿越了,他就需要一個劍術值的數據。通常需要額外兩個表來存儲這種不確定是否
會用會有的屬性。

  首先需要一個屬性模版表,就是不管這個屬性屬於誰,屬於何物,何時,
我只是證明有這麽一條額外屬性而存在。那麽上述的例子當中,屬性模板表當中就
需要添加一條屬性:(屬性代碼一般給屬性分類用)

  ID 1 屬性代碼 1001 屬性名稱 劍術值

  但是具體劍術值是多少,這個表不去討論。存儲數據的表稱為額外屬性表

,這個
表存儲的字段分別標識
  1.這條數據屬於哪個人、物(角色id)
  2.這條數據是什麽屬性 (屬性模板ID)
  3.屬性的具體值是多少 (data)

多對多關系


多對多模式,也是比較常見的一種數據庫設計模式,它所描述的兩個對象不分主
次、地位對等、互為一對多的關系。對於A表來說,一條記錄對應著B表的多條記錄,反過
來對於B表來說,一條記錄也對應著A表的多條記錄,這種情況就是“多對多模式”。
這個主要可以細分成兩種情況。取決於關聯表有沒有業務需求。

轉載:常見的四種數據庫設計模式

數據庫----四種設計模式