论坛首页 综合技术论坛

今天看了个开源的web应用,近100个表,用power designer逆向后看表间关系,结果出来了,吓了一跳。。。

浏览 40817 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (2) :: 隐藏帖 (6)
作者 正文
   发表时间:2011-04-20  
结论是,人的惰性太大了。
对于一锤子的开发,其实都无所谓,但是如果想要项目可维护,外键是必不可少的。
当然了,现在有很多的orm工具,可以大大减少手工维护。
1 请登录后投票
   发表时间:2011-04-22  
在项目中,可以不采用外键,这样方便操作。
0 请登录后投票
   发表时间:2011-04-24  
到底该用不用外键这个问题已经被讨论烂了。
大牛们都也各持不同的意见,但基本上的调调是:
产品不成熟、在完善的时候用外键;产品定型以后把外键去掉。

微博的出现又推动了nosql的发展,真不知道以后会咋样。。。。
0 请登录后投票
   发表时间:2011-04-24  
nosql可以看到明显的应用不是网状关系而是树形关系,并且涉及的应用都不是对一致性有严格要求的场景
用不用外键其中一个标准就是,数据能多大程度容忍进沙子
0 请登录后投票
   发表时间:2011-04-25  
steptou 写道
100个表之间竟然一个关系都没有,就是没有外键?

相应的,别的应用的表间联系却比蜘蛛网还蜘蛛网,


我想问下,这样2种表的设计都各有啥利弊?

电信行业这种很普遍,没有外键的原因是,割接需要导入历史数据。而且历史数据有部分的异常数据,
如果建立外键,数据割接麻烦,而且有些外键建不起,这个就是产生这种情况的最大的原因。
电信行业的软件都有历史数据,基本除了配置数据这种数据量较少的可以建外键,其他实例数据都不建。
0 请登录后投票
   发表时间:2011-04-26  
看你做项目还是做产品,项目高内聚,产品松耦合
0 请登录后投票
   发表时间:2011-04-27  
fnet 写道
别说网站,金X的企业应用也没有外键。

这个兄弟说的是金蝶吧。嘿嘿
0 请登录后投票
   发表时间:2011-04-29  
steptou 写道
qiushily2030 写道
steptou 写道
qiushily2030 写道
一张表200个字段  其中和99张表有关系   你也全部建外键?


是我的话,建立第3个表(或者10个左右的表,看需求),存储第一个表和其他99个表的关系

兄台有何高见,洗耳恭听


这想法不错,可惜这种方法读取数据的时候太麻烦了吧。而且我现在做的系统  数据库表不下五百张
加上视图有一千张+

目前没发现特别好的方法


存在即表明其合理,如果不涉及保密的话,能透露下现在怎么处理的吗?

相信各位做普通应用的很少遇到500个表和1000+视图的吧,至少我没有遇到过(参加过的最大项目表数目才300个不到)

细细道来,就当是给我们上堂公益课,不胜感激!


最多用过100多张表的表示鸭梨很大! 敬听经验!!!!
0 请登录后投票
   发表时间:2011-05-01  
fsplove520 写道
fnet 写道
别说网站,金X的企业应用也没有外键。

这个兄弟说的是金蝶吧。嘿嘿

应该是金山
0 请登录后投票
   发表时间:2011-05-06  
如果不需要 RDBMS 来保证数据一致性,何必用关系型数据库?
外键仅仅在你的数据没有 normalize 时候,才会产生所谓很高额外代价。这也意味着你不需要 join 查询,否则外键是自然使用的。请随便找本关系型数据库的书,看看 RDBMS 的数学原理。维护数据库性能,则需要高水平的 Dba 来优化,而不是让程序员来乱妥协。
至于目前的 NOSQL 潮流,主要要解决的是数据库的 scale out 问题,而不是简单的性能更好。何况几乎所有高性能 NOSQL 分布式数据库都是靠牺牲了 Acid 来获得分布能力,即对数据的一致性要求不高。看看 cap 三角规则就知道这两种技术是不同的取向。RDBMS 取正确性,牺牲可用性。在基本程序设计上,两者思路也几乎相反:RDBMS 数据应是 normalize 的,而 NOSQL 经常是 denormalize 冗余和无关系的。
1 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics