一个分步式开发的问题
    一套程序,三个公司在用(三个一样的代码,一样的数据库结构),现在总公司需要查看三个子公司的数据。
    子公司和母公司之间会有数据的交互,现在出现的问题是:子公司可能会增加。
    需要要求:母公司要存储子公司的数据,10分钟更新一次
    现在我初步的想法是,做三个webservice取对应的数据,先把数据取到,要保存子公司的数据,我觉得太有难度,一年前的数据修改了,也要更新吗 ,这样一考虑 ,那就太难搞了
请问大侠门,可有此类似的项目或是经验可说?

解决方案 »

  1.   

    用一个表或文件保存有操作的ID。这个表的构思看你的具体要求是否变态。这样每10分钟只搜这个表,无操作ID不就啥也不用做?  可行否?
      

  2.   

    额,偶有二想法,
    1.分布式数据库,这个其实就是总公司都有子公司的一份copy。如果总公司查看子公司的数据,可以这些数据库联合起来。这个好处就是总公司和子公司的数据可以通过数据库服务器的设置完成同步,坏此呢
    2.就是不考虑10分钟,子公司有改动的时候,同时更新到总公司。上面那个童鞋说的也是个办法。
      

  3.   

    建立一个更新时间的字段,datetime,判断秒和毫秒不是0的就同步到总公司,同步完就改子公司的更新字段的秒和毫秒都改成0我们公司的网站系统我就这么做,本来只有网站的,现在要有客服,要做会员来电显示调资料,所以我是这样同步的,一般都有更新时间的字段,这样修改量小不过有个问题,就是两加都增加,主健的问题,你可以弄子公司的ID是负的,同步后更改成和总公司一样的ID,我这同步也有这问题,我是这么解决的
      

  4.   

    以前还做过一个这样的同步系统,每个表都有个state字段,有个同步表,记录表名,同步数量,排除字段,只要更改过那个表,那个state=0同时更改同步表的同步数量+1
    这样每次就只管去这个表取一轮,这样就发现有哪些表改过了,然后再取表内容
      

  5.   

    子公司的数据库,可以用触发器记录更改过的数据,如果是单纯的业务系统,并发不高,这样做没什么问题。否则还是要改代码,利用程序去记录变更过的ID,完成以后,主服务器上,用windows服务去定时读取记录的ID。还有,如果有vpn线路,可以用订阅发布这种同步功能去实现。