首页 新闻 会员 周边

关于一个可拆分系统的数据库分析

0
[已解决问题] 解决于 2009-08-24 19:06

现在有这样想做这样的一个系统。本系统是有关企业生产的,该系统是由N个(子)系统组成,各系统之间,可单独独立运行,也可通过某种配置整合到一个大系统,也就是要整合的这个系统。现在的情况是,这N个系统中部分系统已经实现并在实际运行中,最终想通过一个类似企业网站的入口或者其他方式通过用户登录流通到某一系统中进行操作,所以用户一登录就等于登录到了这个大系统中,用户角色还有用户权限也进行了读取并保存到本地或者服务器上(Session)。但是现在有几个问题不是太清楚也不明白该找什么样的关键字。

1.如果要整合这个大系统,其他系统最好怎么配置既可以将其他系统进行整合也可以把某一系统移除这个大系统而单独运行。

2.因为有一些系统已经实现了,所以这些系统的数据库设计可能不是很统一,但我想在尽量不改变这些系统的数据库设计或者简单的更改数据库结构的情况下将系统整合。第二点我想知道的是对于这样的数据库结构,如果要整合的话对于用户身份这样的数据(或者各系统之间可能要用到公共的数据)应该把这样的数据保存到哪里呢?是在这个大系统中另建一个数据库呢?如果另建一个数据库的话好像这样的话如果拿掉其中一个系统的话,这个系统就要有一个附属的数据库来保存这个拿掉的系统的用户信息。那么如果使用链接服务器的话,对于系统的整合可能就要去改变其他系统的数据库结构可能还要重新编写相应系统中的代码,这样的我认为很费时,所以请给我一个比较好的解决方法。

3.因为要整合系统所以可能会遇到跨数据库,跨域的问题。我想问一下对于跨数据库的问题有什么比较好的解决方法。如果可以的话希望告诉我对于跨域的提交或者访问数据时有什么比较好的方法。

 

在此先谢谢各位大师 大虾回答。小弟不胜感激。

跪谢。

二十二号同学的主页 二十二号同学 | 小虾三级 | 园豆:790
提问于:2009-08-11 11:06
< >
分享
最佳答案
1

以下为个人之见。

1.一般是在总系统中添加链接至子系统,权限等等都可以这样做,基本没什么耦合。

2.既然分几个子系统,为了维护方便,个人建议将数据分开。

3.跨库,可建立物化视图。

关于物化视图:

create materialized view B
refresh force on commit
as select * from A;

create materialized view log on A;

解释一下:
第一步是建立物化视图
第二步是在源表上建立log(这样才能同步刷新)


1.如果不要求每时每刻同步的话, 可以用exp工具把A用户的对象导出,然后导入到B用户.

2.如果要求及时同步的话, 那就先在B用户建好表. 然后在存储过程中建好逻辑,定期执行存储过程.

3.使用物化视图,及时将数据刷新到B用户.

Stephen Zhang | 菜鸟二级 |园豆:305 | 2009-08-13 23:26
决定采用第3种
二十二号同学 | 园豆:790 (小虾三级) | 2009-08-22 15:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册