關係型數據庫中,表與表之間關係的理解,以及設計數據庫思想總結:

1.在關係型數據庫中,表與表之間的關係主要有三種:(1)一對一,(2)一對多,(3)多對多

(1)一對一:兩張表中的數據是一一對應的,例如--> 用戶表user ------- 身份信息表 

(2)一對多:一張表中的數據,在另一張表中對應多條數據,例--> 英雄表hero ----- 技能表 

(3)多對多:A表中的數據,在B表中對應多條數據。B表中的數據,在A表中對應多條數據。例-->老師表 ---- 學生表

2.對於一對一而言,從某些層面上來講嗎,它是沒有意義的,我們在設計數據庫表時,將表設計成一對一的關係,往往是因爲當前表中的字段太多。比如:當前表中一共有100個字段,我們可以將這100個字段拆分成5張表。

我們在設計一對一這種表關係時,一般需要考慮兩種因素:

(1)數據庫的查詢性能:對一張表而言,不能有太多的字段。因爲如果我們使用ORM映射的方式來查詢數據庫時,它會將所有的字段信息全部查出,這時,如果一張表的字段太多,會影響查詢的性能。

  (2)  考慮業務因素:出於業務的角度,可能需要當前一張大表中的某些字段,需要獨立出來,單獨形成一張獨立的表。這時可以考慮將表進行拆分。

3.多對多的關係:

在多對多的關係中,我們需要設計一張中間表,三張表纔可以確定一條整體的數據。中間表大致分爲兩種:(1)只是有確定關聯關係的作用,不存在具有業務意義的字段。(2)不僅僅有關聯兩張表的作用,還存在具有業務意義的字段。

4.設計數據庫表的步驟:

(1)我們不應該將數據庫的每一張表僅僅當做是數據表來處理,而是應該與我們項目中的實體類相對應,每一個實體類對應於數據庫中的一張表。

(2)我們首先需要規劃出業務中的一個個業務對象,然後根據業務對象來設計數據庫表。

(3)思考對象與對象之間的業務依賴關係-->是一對一,一對多,還是多對多。那麼表與表之間的關聯是通過外鍵的形式來實現的。外鍵又分爲邏輯外鍵,物理外鍵。對於物理外鍵,一般不建議使用。

(4)整體設計完以後,最後對數據庫表進行細化。例如:字段類型,字段的長度限制,是否爲空......

        以上只是設計簡單項目的數據庫,但是對於存儲海量數據的數據庫而言,我們還需要思考一些其他的維度。例如:單表中的數據記錄越多,對數據庫性能的影響就會越大。如果單表的字段數量太多,那麼就需要考慮對數據庫進行垂直拆分,記錄太多,那麼就需要考慮對數據庫進行水平拆分。

 

5.設計數據庫表時,對於是否需要設置物理外鍵的探討:

使用物理外鍵的好處:它的約束力比較強,可以保證數據的強一致性,但是會影響數據庫的查詢效率。不使用物理外鍵,對數據庫而言,沒有那麼強的約束力,相對能提高數據的查詢效率。普遍認爲,不提倡使用物理外鍵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章