第一步,分析業務,找出系統中業務物件
分析物件間關係,包括呼叫關係、依賴關係。
物件包括資料和方法,在做資料庫設計時主要關注物件資料。
第二步,分析物件資料,找出需要儲存的部分
物件有很多資料成員,不是所有成員都要儲存。比如有些成員是根據其他成員計算出來的。
第三步,對映物件到資料庫
1、 根據需要儲存的物件,確定表結構; 2、
根據物件間關係,確定外來鍵及其他約束。
鍵設計的原則:
a、關欄位建立外來鍵。
b、所有的鍵都必須唯一,要避免n-n關聯,要全部優化為1-n關聯。 c、
避免使用復合鍵。
d、外來鍵總是關聯唯一的鍵字段。
主鍵通常使用自增整數,避免與業務發生關聯。因為業務會變化,但是主鍵不能變。
第四步,根據正規化,消除冗餘資料
第五步,根據效能需求,改善查詢效率 1、
允許少量冗餘
多表聯查很慢。如果引入少量冗餘,能夠消除多表聯查,可以提高查詢效率。但是有冗餘資料,會增加資料維護複雜性,可能出現不一致。因此需要在效率和正規化之間折衷。 2、
設計索引 1.
在經常用作where條件的字段上建立索引; 2.
在sql語句中經常進行group by、order by的字段上建立索引; 3.
在取值比較分散、重複值較少的字段上建立索引; 4.
用於聯接的列(主健/外健)上建立索引; 5.
在經常訪問的多個列上建立復合索引,但要注意復合索引的建立順序要按照使用的頻度來確定;
3、設計儲存過程 4、
根據預估資料量,對關鍵表進行分表、分割槽。
第六步,根據安全性、可靠性需求,設計備份策略
資料庫設計,錯誤設計的想法
當全域性資料庫的設計完成以後,有個美國資料庫設計專家說 鍵,到處都是鍵,除了鍵之外,什麼也沒有 這就是他的資料庫設計經驗之談,也反映了他對資訊系統核心 資料模型 的高度抽象思想。因為 主鍵是實體的高度抽象,主鍵與外來鍵的配對,表示實體之間的連線。程式設計的精華就在於高度抽象,將最複雜的情況,抽象為最...
關於物件導向和設計模式的一些想法
上週和兩個朋友聊天談到了物件導向,大家對程式中物件定義的範疇進行了討論。物件可以是現實世界中的實體,物件可以是作用在這些實體上的一組操作,也可以是多個實體之間的相互作用。程式設計師經常把需要實現的一種服務定義為物件,或者乙個流程定義為物件。面對現實世界中的諸多因素,究竟能抽象出哪些物件定義?我從討論...
關於物件導向的一點想法
c 等語言的 物件導向 是源 級別的,是由編譯器為你呈現的 一片 物件導向 的假象 它只限於編譯器的這一頭 輸入 編譯器的另一頭 輸出 同樣是一堆十分 physical 的二進位制指令序列,和c等面向過程的語言的編譯輸出沒有本質區別。所以newb程式設計師說,我能用c寫出和c 同樣編譯結果的東東來 ...