數據完整性(Data Integrity)

 

大晚上的腦袋暈暈,似困非困,隨便逛逛,看到幾處關於數據完整性的內容。順便寫點小小理解和觀點,才疏學淺,僅供參考,歡迎指導。

一致性也就是數據完整性 發展三個階段:
存儲過程 
外鍵
業務層的領域模型聚合

打算在項目的一個子系統中使用Entity Framework,所以這兩天在學習試試EF,我特別喜歡Model First開發順序,反正我就是喜歡OO,顯示領域模型類圖設計,然後自動生成實體代碼和數據庫表。很是爽!

其中我開始的DEMO中,就有“表關聯”的需要,不過我不用擔心考慮這個,我看到的是類的“聚合”,而表級關聯,EF爲我自動處理好了,舒心的很呀。

類設計圖:

在數據庫中,Doctor表就會含有 SectionOffice_GUID外鍵。而“Person”和“Doctor”的繼承關係的表達是,Person一張表,然後Doctor一張表,Doctor(CreditCard,GUID,SectionOffice),其中“GUID”字段是和父表同步的。

數據庫:

這樣就實現了開篇“傳說的外鍵VS業務層的領域模型聚合”。

但是,這位大哥說:

降低外鍵,增加數據庫的可伸縮性,也就是NoSQL方向;通過業務分析如DDD,其中原則是降低關聯,只保留高內聚的關係,這些高內聚的在數據庫保存時,可以父子對象都放在一張表中;就是分開放,都是使用父對象的ID。至於這些高內聚的父子對象的一致性,可以通過不變性設計或鎖或事務來實現,這是另外一個很大的世界,你需要慢慢了解。

 

附:

1.“我不是巴菲特,我錯了!”,http://www.jdon.com/44061

2.“越深入越觸目驚心!”,http://www.jdon.com/44027

3.“關於數據一致性問題的解決方法?”,http://www.jdon.com/42932

4.“領域驅動設計(DDD:Domain-Driven Design)”,http://www.jdon.com/ddd.html

5.“數據庫該不該用外鍵”,http://blog.sina.com.cn/s/blog_62b080970100lgb9.html

6.“sql server中建立外鍵約束”,http://blog.csdn.net/sunxin1001/article/details/7352930

7.“SQL Server數據完整性”,http://blog.csdn.net/lenotang/article/details/3304387

8.“oracle-------基礎概念”,http://blog.csdn.net/tospha/article/details/4276327

9.“基於上下文圖的策略性領域驅動開發(轉自:http://www.infoq.com/articles/ddd-contextmapping)”,http://blog.csdn.net/tyb1222/article/details/7627965

10.“NoSQL革命仍需要等待”,http://blog.csdn.net/oywl2008/article/details/4406267

11.“領域模型驅動設計(Evans DDD)之模型提煉”,http://blog.csdn.net/oywl2008/article/details/4406226

12.“四色原型總結”,http://www.cnblogs.com/ego/articles/1384212.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章