一.數據表和字段的設計
表設計原則
標准化和規范化
數據的標准化有助於消除數據庫中的數據冗余標准化有好幾種形式我們在這裡采用Third Normal Form(NF)因為NF在性能擴展性和數據完整性方面達到了最好平衡
遵守NF 標准的數據庫某個表只包括其本身基本的屬性當不是它們本身所具有的屬性時需進行分解表之間的關系通過外鍵相連接它具有以下特點有一組表專門存放通過鍵連接起來的關聯數據
考慮各種變化
在設計數據庫的時候考慮到哪些數據字段將來可能會發生變更
字段設計原則
) 每個表中都應該添加的 個有用的字段即要求每張數據表中字段不得少於個
) 選擇數字類型和文本類型盡量充足在字段類型為數字或文本時其長度最好比實際所需的大一些
) 增加自動增長的操作ID字段(czid)
) 增加記錄創建的日期字段(CreateDate)
) 增加刪除標記字段(isvoid)
在表中包含一個刪除標記字段這樣就可以把行標記為刪除在關系數據庫裡不單獨刪除某一行一般采用清除數據程序而且要仔細維護索引整體性
二.鍵和索引的設計
鍵選擇原則
)為關聯字段創建外鍵
)所有的鍵都必須唯一
)避免使用復合鍵
)外鍵總是關聯唯一的鍵字段
使用系統生成的主鍵
設計數據庫的時候采用系統生成的鍵作為主鍵那麼實際控制了數據庫的索引完整性這樣數據庫和非人工機制就有效地控制了對存儲數據中每一行的訪問采用系統生成鍵作為主鍵還有一個優點當擁有一致的鍵結構時找到邏輯缺陷很容易不要用用戶的鍵(不讓主鍵具有可更新性)在確定采用什麼字段作為表的鍵的時候小心用戶將要編輯的字段通常的情況下不要選擇用戶可編輯的字段作為鍵
可選鍵有時可做主鍵
把可選鍵進一步用做主鍵可以擁有建立強大索引的能力
索引使用原則
索引是從數據庫中獲取數據的最高效方式之一%的數據庫性能問題都可以采用索引技術得到解決
索引外鍵
大多數數據庫都索引自動創建的主鍵字段但是可別忘了索引外鍵它們也是經常使用的鍵比如運行查詢顯示主表和所有關聯表的某條記錄就用得上
不要索引大型字段(有很多字符)這樣作會讓索引占用太多的存儲空間
不要索引常用的小型表
不要為小型數據表設置任何鍵假如它們經常有插入和刪除操作就更別這樣作了對這些插入和刪除操作的索引維護可能比掃描表空間消耗更多的時間
三 數據完整性設計
完整性實現機制實體完整性主鍵
參照完整性
父表中刪除數據級聯刪除受限刪除置空值
父表中插入數據受限插入遞歸插入
父表中更新數據級聯更新受限更新置空值
DBMS對參照完整性可以有兩種方法實現外鍵實現機制(約束規則)和觸發器實現機制
用戶定義完整性NOT NULLCHECK觸發器
用約束而非商務規則強制數據完整性
采用數據庫系統實現數據的完整性這不但包括通過標准化實現的完整性而且還包括數據的功能性在寫數據的時候還可以增加觸發器來保證數據的正確性不要依賴於商務層保證數據完整性它不能保證表之間(外鍵)的完整性所以不能強加於其他完整性規則之上
強制指示完整性
在有害數據進入數據庫之前將其剔除激活數據庫系統的指示完整性特性這樣可以保持數據的清潔而能迫使開發人員投入更多的時間處理錯誤條件
使用查找控制數據完整性
控制數據完整性的最佳方式就是限制用戶的選擇只要有可能都應該提供給用戶一個清晰的價值列表供其選擇這樣將減少鍵入代碼的錯誤和誤解同時提供數據的一致性
采用視圖
為了在數據庫和應用程序代碼之間提供另一層抽象可以為應用程序建立專門的視圖而不必非要應用程序直接訪問數據表這樣做還等於在處理數據庫變更時給你提供了更多的自由
[] [] []
From:http://tw.wingwit.com/Article/program/SQL/201311/16258.html