两种数据库设计方案,是分还是合?请大家说说自己的看法!
我们正在用Asp.net做一个中型规模的B/S项目,这个项目中有两个模块,每个模块对应一个SQL Server数据库,但两个模块中有些表是通用的,比如:单位名称表、单位类别表、用户名称表以及用户认证信息(密码、帐号、权限等)等表,以后还要加入更多模块,现在在对数据库是合还是分的问题上产生了不同意见,具体方案和理由如下:
>>>数据库拆分方案:
将所有模块中通用的表,如单位表、用户表等独立出来,另建一个新数据库,每个模块的数据库中只保存与该模块相关的数据。
理由:数据库功能定义清楚,维护方便,因为如果合并,一个数据库中将会有几百个表、视图以及上千的存储过程,其中既有通用数据又有其它数据,对象之间的关系错综复杂且数据混乱,难以维护。
>>>数据库合并方案:
将所有的数据库合并到一块,即整个项目只用一个数据库,在对象名前加上模块名前缀以区分不同功能模块的对象。
理由:整个项目只有一个数据库,有很好的便携性,尤其是在Asp.net应用程序中,只需要一个数据库连接,代码更少,性能更好,如果拆分为多个数据库,很多时候需要跨数据库获取数据,这个不但不易实现,而且同时打开多个数据库连接会严重影响系统的性能和运行速度。
以上两个方案究竟哪种更好,请大家说说自己的看法,另外说明一点,合并方案是我提出来的,因为我是做Asp.net程序的:)但同时也负责设计数据库!谢谢!