資料庫表設計

2021-10-24 18:09:41 字數 1633 閱讀 9596

什麼是設計三正規化:

​ 1.1 設計表的依據:按照這個三正規化設計的表不會出現資料冗餘

三正規化都有哪些:

​ 第一正規化:任何一張表都有乙個主鍵,並且每乙個字段原子性不可以再分

例子不滿足第一正規化:

學生標號

學生姓名

****

001jaden

[email protected], 13029199039

002haoyue

[email protected], 13000009999

001jalen

[email protected], 12911110000

存在的問題

修正後:

學生標號

學生姓名

郵箱**

001jaden

[email protected]

13029199039

002haoyue

[email protected]

13000009999

001jalen

[email protected]

12911110000

關於第一正規化:每一行必須唯一,也就是每個表必須有主鍵。這是我們資料庫設計的最基本的要求

第二正規化:第二正規化在第一方式的基礎上,所有非主鍵字段,完全依賴主鍵,不能產生部分依賴

容易產生冗餘資料。

技巧:多對多:三張表 , 兩個外來鍵

student 學生表

stu_id user_name

1 張三

2 李四

3 王五

teacher 教師表

tea_id teather_name

1 張老師

2 ***

3 王老師

stu_tea_relation

id stu_id tea_id

1 2 1

2 2 3

3 1 2

4 3 1

一對多,兩張表,多的表+外來鍵

在第二正規化的基礎上,所有非主鍵字段直接依賴主鍵,不能產生傳遞依賴

班級t_class

cno cname

1 1班

2 2班

學生t_student

sno sname classno(fk)

1 張三 1

2 李四 2

3 王五 1

設計正規化:

設計表的依據,按照三正規化的表,不會出現資料冗餘

三正規化

提醒:

滿足客服的需求,有的通過冗餘換取速度。

兩種方案:

​ 例子:user_info 表,是乙個非常大的表,我們將常用的字段資料拆分出來乙個新錶。方便查詢。將不常用的表和常用的表一一對應。

t_user_login 使用者登入表

id username password

1 張三 123456

2 李四 478966

t_user_detail 使用者詳情表

id username phone adrrdas t_id(unique)

1 張三 132222 北京 1

2 李四 132999 上海 2

資料庫表設計

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

資料庫表設計

1 資料型別要合理 1 對於數字和日期型別,一般不要採用 varchar 型別,這個陷阱很容易被接受 1 容易帶來隱式型別轉換,導致索引失效,例如 where a 123 a 是varchar 列,實際儲存數字型別值 2 容易帶來資料質量的下降,例如日期型別 2019 01 23 2019 23 0...

資料庫模型設計 表設計

曾經何時,發現自己設計的表,根本不滿足業務發展。1.業務id的設計,如商品表,單錶就不說了,在如今海量資料的背景下,當然要分庫發表啦。商品表,id,item id,表位置,id當然就是主鍵了,在單錶情況下,保持唯一就可以。item id商品id,就是要在全域性保持唯一,可能商品表有30張,甚至100...