JAVA程序与数据库设计困惑~

如题,最近在做一个项目,在数据库(oracle)的表中加入了很多的外键和存储过程,我个人觉得这样不好,我觉得表应该是各自独立的,像程序一样,最大限度的减少耦合,表与表之间的关系应该放到类似hibernate这一层去做,或者干脆放到业务层去做,不知道我的理解对不对,请大家多多指教。

另外,有没有这方面的书,或者规范什么的,提供一下书名,我想好好研究一下,先谢谢了!

还有,我做JAVA开发程序已有多年,现在在做项目经理,JAVA中的技术都接触过,但都不深,如何提高自己,在团队中真正起到一个带领的作用?在我现在的位置,我应该多看些什么书呢?板桥大哥能说说么?

[该贴被evane1890于2009-11-12 13:12修改过]
[该贴被evane1890于2009-11-12 13:28修改过]

2009年11月12日 12:59 "evane1890"的内容
最大限度的减少耦合,表与表之间的关系应该放到类似Hibernate这一层去做,或者干脆放到业务层去做,

是这样,使用对象的关联替代表的关系,在领域模型层实现。当然设计模式和DDD是推荐的书籍,DDD告诉你如何从需求中发现对象,有了对象如何组织设计则是GOF设计模式擅长之处。

恕我直言,你对数据库还不很了解。
计算机是对现实世界的模拟。一个表相当于一本账。譬如以银行为例,最简单的会计记账系统需要两个表:余额表和流水表。当某个账户收进1万时,你得在流水表里记录一笔该户头的收入,然后在余额表该户头上加上10000。这两个表,本来就是相关的。现在,用一个表的主键和另一个表的外键关联起来,就是为了模拟这个相关性。存储过程可以保证数据的一致性。

这些问题确实很困初学者哟。