首页 新闻 会员 周边 捐助

数据库的模块化,系统程序的模块化

0
悬赏园豆:80 [已解决问题] 解决于 2008-09-26 19:21

最近要多人协作开发个东东,于是我在想怎么能够模块化,尽量像petshop4一样能够分成多个库,最后是一个模块一个库,这样大家各自开发各自的。可是数据库这块不太好办,比如用户表,可能很多个模块都要调用,我在想说有没有什么办法可以降低他们之间的耦合。

比如一个人要发布新闻,要有个新闻表,可是为了要获得谁添加的新闻那就会和用户表有关系了,一般这样的数据库是怎么设计,把相关的模块设计成一个库?

 

lexus的主页 lexus | 初学一级 | 园豆:0
提问于:2008-09-21 00:27
< >
分享
最佳答案
0

最近我也在搞这个东东,首先你要确定的是,基础模块Foundational Module和业务模块Business Module。在基础模块中定义要接口和基类,让Business Module引用你的Foundational Module,不要反相引用。

另外,你可以还有一些与具体系统无关的基础架构Infrastructure,Foundational Module和Business Module都可以依赖于它,不要反相引用。

最后你的系统=Foundational Module + Business Module + Infrastructure。

至于开发方面就好多了,每个人可以负责多个Business Module或者几个人负责Foundational Module,其实在Web Client Software Factory中就是基于这种方式的:

http://www.cnblogs.com/Terrylee/archive/2007/11/26/Web-Client-Software-Factory-Web-Composite-Application-Block.html

TerryLee | 老鸟四级 |园豆:3300 | 2008-09-22 00:36
其他回答(4)
0

比如用户表,很多个模块要用,那么就应该事先设计好用户表的结构,比方说面向对象的设计,可以不管数据表,先设计好实体类和相关的接口,把接口扔给别的模块他们就能调用了,具体实现暂时不管,其他模块需要单元测试的就自己MOCK去,到时候集成测试再说了

其他的模块,要调用用户表的就去调接口去,自己也相应地放出一套接口让其他模块调用就行

需要注意的是“最好”不要形成环状引用的关系

Gray Zhang | 园豆:17610 (专家六级) | 2008-09-21 01:46
0

可以用网络数据库,大家同时使用网络上的同一个数据库....可能不是最理想的办法但是确实可以实现很多人共同协作使用.....

Jared.Nie | 园豆:1940 (小虾三级) | 2008-09-21 09:03
0

用户表和一些经常用到的表,譬如在线表,积分表,动作表......应该在一个基础模块中,其他模块的开发应该按照这个为基础的,当然,这个基础模块可以多人维护它.

经常模块中应该有用到的表的实体接口.

zjy | 园豆:3194 (老鸟四级) | 2008-09-21 16:49
0

偶也跟着学习一下...

有所为,有所不为 | 园豆:1200 (小虾三级) | 2008-09-22 10:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册