精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (6)
|
|
---|---|
作者 | 正文 |
发表时间:2011-04-20
结论是,人的惰性太大了。
对于一锤子的开发,其实都无所谓,但是如果想要项目可维护,外键是必不可少的。 当然了,现在有很多的orm工具,可以大大减少手工维护。 |
|
返回顶楼 | |
发表时间:2011-04-22
在项目中,可以不采用外键,这样方便操作。
|
|
返回顶楼 | |
发表时间:2011-04-24
到底该用不用外键这个问题已经被讨论烂了。
大牛们都也各持不同的意见,但基本上的调调是: 产品不成熟、在完善的时候用外键;产品定型以后把外键去掉。 微博的出现又推动了nosql的发展,真不知道以后会咋样。。。。 |
|
返回顶楼 | |
发表时间:2011-04-24
nosql可以看到明显的应用不是网状关系而是树形关系,并且涉及的应用都不是对一致性有严格要求的场景
用不用外键其中一个标准就是,数据能多大程度容忍进沙子 |
|
返回顶楼 | |
发表时间:2011-04-25
steptou 写道 100个表之间竟然一个关系都没有,就是没有外键?
相应的,别的应用的表间联系却比蜘蛛网还蜘蛛网, 我想问下,这样2种表的设计都各有啥利弊? 电信行业这种很普遍,没有外键的原因是,割接需要导入历史数据。而且历史数据有部分的异常数据, 如果建立外键,数据割接麻烦,而且有些外键建不起,这个就是产生这种情况的最大的原因。 电信行业的软件都有历史数据,基本除了配置数据这种数据量较少的可以建外键,其他实例数据都不建。 |
|
返回顶楼 | |
发表时间:2011-04-26
看你做项目还是做产品,项目高内聚,产品松耦合
|
|
返回顶楼 | |
发表时间:2011-04-27
fnet 写道 别说网站,金X的企业应用也没有外键。
这个兄弟说的是金蝶吧。嘿嘿 |
|
返回顶楼 | |
发表时间:2011-04-29
steptou 写道 qiushily2030 写道 steptou 写道 qiushily2030 写道 一张表200个字段 其中和99张表有关系 你也全部建外键?
是我的话,建立第3个表(或者10个左右的表,看需求),存储第一个表和其他99个表的关系 兄台有何高见,洗耳恭听 这想法不错,可惜这种方法读取数据的时候太麻烦了吧。而且我现在做的系统 数据库表不下五百张 加上视图有一千张+ 目前没发现特别好的方法 存在即表明其合理,如果不涉及保密的话,能透露下现在怎么处理的吗? 相信各位做普通应用的很少遇到500个表和1000+视图的吧,至少我没有遇到过(参加过的最大项目表数目才300个不到) 细细道来,就当是给我们上堂公益课,不胜感激! 最多用过100多张表的表示鸭梨很大! 敬听经验!!!! |
|
返回顶楼 | |
发表时间:2011-05-01
fsplove520 写道 fnet 写道 别说网站,金X的企业应用也没有外键。
这个兄弟说的是金蝶吧。嘿嘿 应该是金山 |
|
返回顶楼 | |
发表时间:2011-05-06
如果不需要 RDBMS 来保证数据一致性,何必用关系型数据库?
外键仅仅在你的数据没有 normalize 时候,才会产生所谓很高额外代价。这也意味着你不需要 join 查询,否则外键是自然使用的。请随便找本关系型数据库的书,看看 RDBMS 的数学原理。维护数据库性能,则需要高水平的 Dba 来优化,而不是让程序员来乱妥协。 至于目前的 NOSQL 潮流,主要要解决的是数据库的 scale out 问题,而不是简单的性能更好。何况几乎所有高性能 NOSQL 分布式数据库都是靠牺牲了 Acid 来获得分布能力,即对数据的一致性要求不高。看看 cap 三角规则就知道这两种技术是不同的取向。RDBMS 取正确性,牺牲可用性。在基本程序设计上,两者思路也几乎相反:RDBMS 数据应是 normalize 的,而 NOSQL 经常是 denormalize 冗余和无关系的。 |
|
返回顶楼 | |