数据完整性(Data Integrity)

来源:互联网 发布:淘宝摄影室内布光 编辑:程序博客网 时间:2024/04/28 03:02

 

大晚上的脑袋晕晕,似困非困,随便逛逛,看到几处关于数据完整性的内容。顺便写点小小理解和观点,才疏学浅,仅供参考,欢迎指导。

一致性也就是数据完整性 发展三个阶段:
存储过程 
外键
业务层的领域模型聚合

打算在项目的一个子系统中使用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;

原创粉丝点击