主擴充套件模式
一般應用於提取不同型別的物件的共同特徵。比如學校當中,對於上課而言分為
老師和學生,但對於食堂大媽或者門衛大爺而言,就看你是不是校內人員。這是一種包含
關係。即校內人員包括 學生、老師、其他工作人員。如果做乙個簽到系統,就設定校內
人員為user表,老師、學生之類的單獨成表,但是都維護同樣的userid同時作為二者的主
鍵。使之稱為1對1的關係。這種模式就是主擴充套件模式。
擴充套件表的主鍵既是擴充套件表的主鍵也是主表的外來鍵
主從模式
主從模式的應用場景最多。是典型的一對多的關係。比如貼吧的實現,整個
吧就是乙個主表。而貼吧有許多的從表就是不同樓主發的帖子,而每個帖子有用很多從表
那就是每個樓所對應的資訊。
名值關係
主要處理系統設計階段還不能完全確定的屬性的物件。這些物件的屬性在系統運
行時會有很大的變更,或者是多個物件之間的屬性存在很大的差異。
比如說乙個學生的表,記錄了一些學生必須有的屬性:年齡身高體重姓名什麼的。但是突然有
一天有乙個人穿越了,他就需要乙個劍術值的資料。通常需要額外兩個表來儲存這種不確定是否
會用會有的屬性。
首先需要乙個屬性模版表,就是不管這個屬性屬於誰,屬於何物,何時,
我只是證明有這麼一條額外屬性而存在。那麼上述的例子當中,屬性模板表當中就
需要新增一條屬性:(屬性**一般給屬性分類用)
id 1 屬性** 1001 屬性名稱 劍術值
但是具體劍術值是多少,這個表不去討論。儲存資料的表稱為額外屬性表,這個
表儲存的字段分別標識
1.這條資料屬於哪個人、物(角色id)
2.這條資料是什麼屬性 (屬性模板id)
3.屬性的具體值是多少(data)
多對多關係
多對多模式,也是比較常見的一種資料庫設計模式,它所描述的兩個物件不分主
次、地位對等、互為一對多的關係。對於a表來說,一條記錄對應著b表的多條記錄,反過
來對於b表來說,一條記錄也對應著a表的多條記錄,這種情況就是「多對多模式」。
這個主要可以細分成兩種情況。取決於關聯表有沒有業務需求。
MySQL 資料庫表設計
字段具有原子性,不可再分。所有關係型資料庫系統都滿足第一正規化 資料庫表中的字段都是單一屬性的,不可再分 要求實體的屬性完全依賴於主鍵。所謂完全依賴是指不能存在僅依賴主鍵一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成乙個新的實體,新實體與原實體之間是一對多的關係。為實現區分...
mysql 資料庫設計 MySQL 資料庫設計總結
本文由雲 社群發表 規則 1 一般情況可以選擇 myisam 儲存引擎,如果需要事務支援必須使用 innodb 儲存引擎。注意 myisam 儲存引擎 b tree 索引有乙個很大的限制 參與乙個索引的所有欄位的長度之和不能超過 1000 位元組。另外 myisam 資料和索引是分開,而 innod...
資料庫 四種設計模式
設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類的 設計經驗的總結。一般應用於提取不同型別的物件的共同特徵。比如學校當中,對於上課而言分為 老師和學生,但對於食堂大媽或者門衛大爺而言,就看你是不是校內人員。這是一種包含 關係。即校內人員包括 學生 老師 其他工作人員。...