论坛首页 Java企业应用论坛

数据库的设计原则:关联还是不关联?

浏览 32645 次
精华帖 (2) :: 良好帖 (0) :: 新手帖 (8) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-12-07  
我建议您还是不要关联 自己用自己的业务逻辑比较好
0 请登录后投票
   发表时间:2009-12-09  
开发经验丰不丰富也没啥关系吧
应用层逻辑不可靠,测试难道不能测出来么
ls有个哥们说得好,自己有把握就自己处理关联关系,没把握就用数据库
jasonshi 写道
除了极端性能要求的情况下,外键是不嫌多的。
大部分的应用,读多写少,外键的性能影响几乎可以忽略,只要索引合适就行。

通常软件开发经验越丰富,越是会知道关联/外键的好处。

应用层的校验不可靠的,外键就是为了防止应用层逻辑的不可靠。


0 请登录后投票
   发表时间:2009-12-14  
carlkkx 写道
很多人都强调数据完整性,但是现实世界是数据往往要容错的,而且完整性并不是要同一时间保证的,比如你填一份表格,有几个栏位不确定,但是已经填的需要放入,没填的等明确了再填,但是数据库约束却认为这份数据是不合法的,无法加入,岂不是很不好的体验。数据完整性现实世界操作往往不是同一时间完成的,但是电脑却蛮横无理要求一定要满足了才能放入,是很糟糕的体验。

这是最不负责任的作法。分析时不管业务意义上的约束,而是放开所有约束。等到生产环境出现了脏数据,一句“用户使用不规范”就给打发了。
0 请登录后投票
   发表时间:2009-12-15  
iamlotus 写道
carlkkx 写道
很多人都强调数据完整性,但是现实世界是数据往往要容错的,而且完整性并不是要同一时间保证的,比如你填一份表格,有几个栏位不确定,但是已经填的需要放入,没填的等明确了再填,但是数据库约束却认为这份数据是不合法的,无法加入,岂不是很不好的体验。数据完整性现实世界操作往往不是同一时间完成的,但是电脑却蛮横无理要求一定要满足了才能放入,是很糟糕的体验。

这是最不负责任的作法。分析时不管业务意义上的约束,而是放开所有约束。等到生产环境出现了脏数据,一句“用户使用不规范”就给打发了。


你给党国的某些部门做事儿,约束性太强了,那些人还以为你的系统有问题呢
0 请登录后投票
   发表时间:2009-12-15  
大家的case都不大一样, 结论自然不同.
偶是做c/s的, 数据要在远程传递, lazy的话序列化和jaxb都会有问题. 不lazy效率不高. 做b/s的可能没这个问题.
另外, 我觉得hibernate validation框架应该解决这个问题. 加上一个@FK属性就行了, 不要总干些拔出萝卜带出泥的事情.
另外, 强壮的系统似乎不应该依靠关联来检查错误, 就是报错信息也不好看.


查询效率问题, 冗余啊, 视图啊, 缓存啊都可以, 看数据量,效率了


偶准备做个POJO driven framework, 这个关联准备交给框架处理, 不要在数据库层面折腾.
0 请登录后投票
论坛首页 Java企业应用版

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