一个5级平台,每个下级都有一个自己的数据库,到最底层会有上千个数据库,上一级要能够调用和修改下级的信息,分布式数据好像能解决这个问题,请大家帮忙提点详细的建议,怎么就能更好的实现这个系统,尤其是数据库这一块,最好用.net和sqlserver,谢谢大家了。

解决方案 »

  1.   

    有系统分析师和我说,用分布式数据库,xml进行数据库间传递,还有用到历史数据库和当前数据库,搞晕了,大家提点建议,它和政府办公的系统有些相似.
      

  2.   

    那么多级用分布式数据库没错,每隔一段时间就把下一级数据库里的数据增量获取出来,也就是关于每张表数据的insert,update以及delete语句,保存在xml文件中传到上级数据库,上级获得该xml文件解析后在本地数据库中执行,前提是上下级数据库结构相同,这些过程可在windows service和web service中实现,这样也就完成了上下级数据库的同步;同时应注意传输过程的安全性,有必要使用证书加密解密的方式
      

  3.   

    seedling_lq,谢谢你的宝贵意见.这里我有几个问题,就是最底级更新了,他的上一级通过你刚才说的那种方式实现了同步,那么上上一级,再上级的同步又怎么做?还有他有审核通过后同步到上级,也有直接发布了信息同步到上级的,这里是要做两种同步方法吧?还有就是同步了数据库,到最上级(省级),他数据库里的数据量会非常大,可能会爆掉,和使用集中数据库一样的结果,有人和我说用历史数据库和当前数据库,就像分时间段备份样的,这里如果我要取历史数据库和当前数据库中的一些并集信息,是不是又把当前数据库和历史数据库采用分布式查询来获取.
      

  4.   

    村级将数据同步给乡级,乡级再到县级,类推往上都可用这种方式实现,更改的只不过是目标web service的地址;实际上到了最上级,你可以划分成多个数据库,每个市是一个,传上来的数据增量都更新到相应的数据库中,这样相对可减缓数据量大的问题,但是对后期省级的相关数据查询统计及报表制作会造成不便;所以建议还是传到一个数据库中,相对的你可以在省级的这个数据库定期将一些事实表中的信息(非维度表)备份到相应历史数据库并删除,而那些会员信息不需要采取这样的操作,因为这些维度信息相应变化不会太大,会膨胀的多是一些业务事实表,这个备份可直接建立作业来完成
      

  5.   

    seedling_lq,我想到市级以下就采用集中式数据库,数据重复没那么多,管理的数据库也没那么多,5级分布是在是太多数据库了,上面的数据库随便改一下就要动那么多下级数据库,工作量太大,对以后升级开发一点都不利。然后市级到省级就采用你给我提的这种方式解决。