84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
为了避免数据库一对多多对多的复杂关系,我对数据库的设计是表里的字段都没有外键,其关系使用setter和getter来手动关联,但是程序写下来了,功能是可以实现,但是发现要写一大堆的getter与setter,很痛苦,还是说从一开始就不应该这样设计呢
这样设计很好啊,你只是缺一个数据库抽象层,或者 ROM。
数据库理论有个概念叫:CAP。
CAP理论是由 EricBrewer 教授提出的,在设计和部署分布式应用的时候,存在三个核心的系统需求,这个三个需求之间存在一定的特殊关系。三个需求如下:
C: Consistency 一致性A: Availability 可用性P: Partition Tolerance分区容错性
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
而大部分 nosql 数据库都在 C(一致性)上妥协了。
所以放弃外键是明智的。外键是为了保持所有的数据一致性,但是很多时候我们根本不需要数据是实时一致的,我们只需要保证最终一致性就可以了。
http://www.csdn.net/article/2...
http://duanple.blog.163.com/b...
1,现在互联网基本不用外键.2,get set的问题可以试试Lombok
我们在实际应用中一般外键都是用程序去控制的。不在数据库层面。
第一,关系型数据库的外键(此处特指映射关系)还是很有用的第二,外键(此处特指外键约束)是不应该存在的。
现在用外键的应用越来越少了。 在10年前还是挺多的。 主要是业务独立的考虑吧。 喜欢把业务完全放在应用端,数据库只是用来持久化使用的。
十多年前开始工作的时候的一些项目数据库,数据库也参与到业务当中,但是后期发现维护起来很痛苦。后来项目维护的时候,为了能应对所有问题,不得不增加了数据库专员。在项目总结中也提出这个问题了。数据库专员的成本很高的。
这样设计很好啊,你只是缺一个数据库抽象层,或者 ROM。
数据库理论有个概念叫:CAP。
CAP理论是由 EricBrewer 教授提出的,在设计和部署分布式应用的时候,存在三个核心的系统需求,这个三个需求之间存在一定的特殊关系。三个需求如下:
C: Consistency 一致性
A: Availability 可用性
P: Partition Tolerance分区容错性
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
而大部分 nosql 数据库都在 C(一致性)上妥协了。
所以放弃外键是明智的。外键是为了保持所有的数据一致性,但是很多时候我们根本不需要数据是实时一致的,我们只需要保证最终一致性就可以了。
http://www.csdn.net/article/2...
http://duanple.blog.163.com/b...
1,现在互联网基本不用外键.
2,get set的问题可以试试Lombok
我们在实际应用中一般外键都是用程序去控制的。不在数据库层面。
第一,关系型数据库的外键(此处特指映射关系)还是很有用的
第二,外键(此处特指外键约束)是不应该存在的。
现在用外键的应用越来越少了。 在10年前还是挺多的。 主要是业务独立的考虑吧。 喜欢把业务完全放在应用端,数据库只是用来持久化使用的。
十多年前开始工作的时候的一些项目数据库,数据库也参与到业务当中,但是后期发现维护起来很痛苦。后来项目维护的时候,为了能应对所有问题,不得不增加了数据库专员。在项目总结中也提出这个问题了。数据库专员的成本很高的。