資料庫表設計 基本思路

2021-06-20 08:42:15 字數 2328 閱讀 3049

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

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

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

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

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

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

比如說:

現在需求是:

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

2)我想要的是:通過名字查到某人的位址,生日和郵箱;

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

姓名 住址 

郵箱 生日

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

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

name 

interests

jim 

fishing,football

lilei 

walking,book

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

teacher 

student1 

student2 

student3

lucy 

hanmeimei 

poli 

lily

jack 

rose 

mary 

simon

這裡的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;因為乙個人可以對應多個郵箱,但乙個郵箱只能屬於乙個人(他自己要共用木有辦法)

多對多 

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

user_id

user_name1張三

2李四3王五

user_id

produc_id11

1322

2331

3233

produc_id

produc_name

1lining

2nike

3adidas

另外,同乙個表裡的各欄位之間不要有複雜的依賴關係.各欄位只能和主鍵有依賴關係.如果非主鍵和非主鍵間有依賴關係,就要將它們從主表分離出去,放在另乙個表中,並通過外來鍵進行關聯

資料庫的效能測試基本思路

資料庫的效能測試,涉及面廣,且專業,要想有所建樹,需要長期探索 積累。簡單概括,通常會有如下相關項 硬體 作業系統 資料庫配置 應用模型 第一,硬體 1.變化的硬體 通常指裸機配置等,如cpu 記憶體大小都對效能有重要影響。再如裸裝置 固態硬碟等,對效能也影響很大。2.變化的網路環境 10m 100...

資料分析基本思路及手法

資料分析 是產品運營極具戰略意義的一環 從巨集觀到微觀分析,通過表層資料探勘產品問題,是每個運營人的必修課。5w2h分析法 what 使用者要什麼?why 為什麼要?where 從哪兒得到?when 我們什麼時候做?who 對誰做?howmuch 給多少?how 怎麼做?ps what 使用者要極品...

資料分析基本思路及手法

資料分析,是產品運營極具戰略意義的一環 從巨集觀到微觀分析,通過表層資料探勘產品問題,是每個運營人的必修課。首先,我們來看比較常見的分析方法 5w2h分析法 what 使用者要什麼?why 為什麼要?where 從哪兒得到?when 我們什麼時候做?who 對誰做?howmuch 給多少?how 怎...