mysql表設計原子性 資料庫表設計 原子性

2021-10-19 01:34:06 字數 1871 閱讀 9681

好的資料結構會影響速度。好的資料庫表設計會影響資料庫操作效率。特別是資料多的時候,如果表的結構不好的話操作的時候條件(where後的內容)會變的非常複雜。

sql是關聯式資料庫中用到的一種語言。所以,為了簡化sql,表的關係(內部和外部)要盡量設計的合理。

下面有幾個可以參照的步驟:

1)找出那個表要描述的東西;

2)列出你想通過這個表得到的相關資訊的列表;

3)通過上面的資訊列表,將資訊劃分成一塊塊小的部分,通過此小塊來建表;

比如說:

現在需求是:

1)我需要乙個表來管理我的朋友的個人資訊;

3)將上面的資訊劃分成一塊塊分別對應表裡的乙個字段,所以表可以如下:

姓名住址郵箱生日

但需求可能更細,比如說:生日我想精確到年,這樣方便我查詢每年裡所有的朋友。這樣就可以將生日再細分成年月日三個字段。甚至如果要細分的話,位址可以再分國國家,省,市等。當然,這就看你想通過表獲得哪些資料,一切設計是為了方便資料庫操作。在方便自己的前提下將資料表的字段設計成「原子化」(即不可再細分)。比如說,乙個網上商店的資料表,什麼路多少號對於它來說就是原子化的資料了,就不用再把什麼街多少號分開做為兩個欄位來儲存。但對於乙個地產商來說,他希望可以通過街道名,號,等來查,所以位址分成幾個欄位會更好。

欄位的原子化是指乙個欄位裡不要包括多個同型別的值;如:

nameinterests

jimfishing,football

lileiwalking,book

表的原子化是指乙個表裡不要包括幾個儲存同型別值的字段;如:

teacherstudent1student2student3

lucyhanmeimeipolilily

jackrosemarysimon

這裡的student1 student2 student3

就重複了。但上面這兩種情況似乎只能選擇其中乙個,也就是說無法滿足絕對的原子化,其實不然.我們可以把這些無法滿足原子化的字段另外建乙個表,讓兩個表關聯起來.

更合理的表設計會給每條記錄加上乙個唯一的識別,就是加上主鍵。

1)將乙個表字段設為主鍵要求在表建立的時候就進行設定。

2)乙個表裡被設為主鍵的字段的值必須是唯一的,也就是說如果乙個欄位被設為主鍵,這個表所有的資料列表裡這個欄位的值不可能有重複的。

3) 被設為主鍵的字段不能插入空值。

4) 被設為主鍵的字段的值是不能更改的。

5)如果欄位被設為是自增長的,主鍵只能設定乙個且它必須是主鍵。如果表中沒有自增長的字段,則可以設多個字段為主鍵.

6) 主鍵最好是乙個和表裡資料無關的值。比如說另建乙個字段:id;而不要設在:name

等這些欄位上。

前面提到了兩個表關聯.兩個表之間資料的關係有三種:

1)一對一;兩個表裡資料唯一對應;

2)一對多;表a在表b裡對應多條資料,但表b裡的一條資料絕對只對就a中的一條資料;

3)多對多;a裡的一條資料對應b裡的多條資料,b裡一條資料也對應a中的多條資料.

一對一的表設計用的不多.可能用到的情況有:

a)對乙個表中大多數時候不查的字段,放到另乙個表中對應起來.這樣可以提高大多數時候查詢的效率;

b)若表中記錄還有些欄位的值未知,可以將這些欄位分出來放.這樣可以讓主表中不存在null;

c)不想輕易就查出來的資料,比如乙個人的工資詳情,等.可以在主另一表中放著;

d)大文字,通過乙個外來鍵關聯,這樣可以提高查詢效率;

一對多的情況可以如下:

有乙個人員資訊表info,裡面包括乙個外來鍵:email;這個欄位裡存的是郵箱表emailbox裡的主鍵:id;因為乙個人可以對應多個郵箱,但乙個郵箱只能屬於乙個人(他自己要共用木有辦法)

多對多對優化表設計的用處最大,效果最顯著;乙個多對多的關係是由乙個連線表有兩個一對多的表關係組成的;檢視下圖:

MySQL 資料庫表設計

字段具有原子性,不可再分。所有關係型資料庫系統都滿足第一正規化 資料庫表中的字段都是單一屬性的,不可再分 要求實體的屬性完全依賴於主鍵。所謂完全依賴是指不能存在僅依賴主鍵一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成乙個新的實體,新實體與原實體之間是一對多的關係。為實現區分...

資料庫表設計

在軟體的開發中,資料庫表的設計是十分基礎和重要的工作。資料庫表是軟體具體實現的基石,如果表設計的不合規範就會出現資料冗餘,跟業務脫節等問題,等出現問題後再做大的調整相應的依賴表的編碼測試等工作也會進行大的調整這樣就會造成極大的資源消耗。因此在專案一開始設計表的時候就要注意表設計的規範性問題。資料庫 ...

資料庫表設計

什麼是設計三正規化 1.1 設計表的依據 按照這個三正規化設計的表不會出現資料冗餘 三正規化都有哪些 第一正規化 任何一張表都有乙個主鍵,並且每乙個字段原子性不可以再分 例子不滿足第一正規化 學生標號 學生姓名 001jaden zjl 123.com,13029199039 002haoyue w...