數據庫設計原則_第1頁
數據庫設計原則_第2頁
數據庫設計原則_第3頁
數據庫設計原則_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫設計核心原則羅代均一、3NF第三范式通常認為,第三范式在性能,擴展性和數據完整性方面達到了最好平衡. 通常認為,第三范式在性能,擴展性和數據完整性方面達到了最好平衡.有以下幾個要點。有以下幾個要點。1.一個表只描述一個單一的事物(實體。一個表只描述一個單一的事物2.表內的每一個值在整個數據庫只出現一次(外鍵除外2.表內的每一個值在整個數據庫只出現一次(外鍵除外。表內的每一個值在整個數據庫只出現一次3.表內的每一行都應該被唯一的標識(有唯一主鍵。3.表內的每一行都應該被唯一的標識(有唯一主鍵。表內的每一行都應該被唯一的標識4.表內不存儲與主鍵無關的信息。表內不存儲與主鍵無關的信息二、字段設

2、計技巧1.確保表中沒有計算字段計算字段的值,是由其他字段的值計算而來,當你更新其他字段的時候,很容易忽略同時更新這個計算字段,造成數據的錯誤。2.確保這個字段的值只有一個例如下表Users:用戶ID 用戶名稱電話號碼001 robin 1358888888/028-*/電話號碼的值就不只一個,因此電話字段不能放在users表中,解決辦法是增加一個表Phone 電話號碼ID 用戶ID 電話號碼001 001 13588888 002 001 028-888888這個表就是Users的從表,用戶ID是外鍵. 還有地址address,和電話的情況類似。3.盡可能地細分字段如下雇員表(employee

3、雇員ID 雇員名稱地址emp_id emp_name emp_address 001 Robin四川省成都市高新區(qū)天泰路1號這里的emp_address就可以細分,改進的表如下雇員ID 雇員名稱國家省/直轄市地/市001 羅代均china 四川成都區(qū)/縣高新區(qū)街道天泰路1號這樣更方便我們編輯和統(tǒng)計,有利于保證數據的完整性。三數據表設計技巧1.為表內的每一個字段添加表名縮寫例如客戶表customer cust_id cust_name cust_type cust_city .這樣書寫SQL語句時,很容易就知道這個字段屬于哪個表,代表什么含義。例如cust_city ,就不會和employee表

4、的emp_city混淆了。2.為每一個表添加如下字段last_update_by 最后修改人last_update_date 最后修改時間這樣方便以后數據錯誤時,查找相關責任人,以及錯誤發(fā)生時間。3.添加刪除標記字段在關系數據庫中,表之間的關系錯綜復雜,刪除一條記錄,往往會影響很多其他的表,建議添加刪除標記字段,刪除數據時,只是將這行標志為刪除即可。例如,客戶表(customercust_id cust_name status001 羅代均A A:Active,活動的,有效的002 羅曾英I I:Inactive ,無效的其他的表,比如送貨單,里面有cust_id,如果我們將002客戶刪除,那

5、么這張送貨單也就不能查看了.刪除002客戶時,只需要將其狀態(tài)更改為I即可. 我們還可以編寫單獨的數據清除程序,將這些標記為刪除的數據刪除,或者移入歷史數據庫中等。4.使用無業(yè)務含義的數字作為主鍵首先,關系數據庫中,一個表的主鍵往往會被其它表引用(外鍵.因此, 任何情況下,都不能允許主鍵字段被修改.否則,相關表的記錄都要相應的修改,這真是噩夢.而且,任何有業(yè)務含義的字段,都有被修改的可能,因此不能作為主鍵, 當然,為了保證數據的完整性,我們可以為必須唯一的字段(可能是一個,或者多個,添加唯一索引.最后,從性能考慮,還有什么比數字查詢效率更高呢?這點對于多表連接查詢非常重要。例如,以前有些系統(tǒng)使用身份證號碼作為主鍵,但是后來身份證由15 位升為18位,這些系統(tǒng)就面臨噩夢了!因此,建議為表添加無業(yè)務含義的數字作為主鍵,SQL Server,MySQL 可以用自增字段, Oracle可以用序列sequence.5.別忘記為外鍵添加索引大家都知道,系統(tǒng)會自動為主鍵添加唯一索引。但是外鍵,需要我們手動添加索引。6.將表的公共部分,導出成一張表,作為其他模塊交互的接口。如果表的結構經常變化,那么將這個表中公共的部分抽取出來,單獨作為一張表,這樣,對表結構的修改,就不會影響到其它關聯的模塊。例如:將客戶表customer表拆分customer_basic和customer_oth

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論