本帖最后由 tanaichuan 于 2013-08-13 10:41:36 编辑

解决方案 »

  1.   

    --#1.楼主分模块是为了一个Team开发一个模块?且这些Team不在同一个地方(比如一个在北京,一个在上海),所以才叫分布式开发?
    --#2.数据库复制是数据库同步用的。
    --#3.可以设置自动同步表结构
    --#4.哪方面的安全问题?是指Team之间的权限,还是其它?
      

  2.   

     嗯是一个Team 开发一个模块。方便维护。
    安全问题是:防止别人也来复制你的数据库。然后就想问问你们做这个分布式的时候是怎么做的,安全方面是怎么考虑的,,,,,还有因为现在有很多存储过程 ,分布式过后 这些存储过程还能共用吗?
      

  3.   

    #1.各个TEAM负责维护自己模块数据库(包括表,存储过程等所有对象)。
    #2.帐户表只存储一份,可通过复制技术,复制到多台服务器上。如果需要更改帐户表,只能从发布端更改,订阅所有的订阅端会自动同步(表结构和数据,存储过程都会同步,但如果是新增的对象,需要添加到发布中并重新初始化订阅)。
    #3.复制,帐户表的更改由专人维护。避免混乱。
    #4.至于复制,只是一个同步技术,有管理员权限的用户才能维护,只要你的SQL SERVER权限没有泄露,不存在“别人也来复制你的数据库”的问题。
    #5.一般实时同步的话,用事务性复制,来同步帐户表结构和存储过程即可。1个发布,多个订阅。
      

  4.   

    如果是数据量太大,那可以考虑分数据库。仅是考虑开发上面问题,我觉得没必要要。作为一个开发人员,他想复制你的代码、存储过程,那不是小case吗?
    一个项目总有一个人做项目经理,总要了解其中所有的东西吧,设计的问题主要是对业务,是不是应该分数据,而不是为了对开发人员的访问权限限制面分数据库。一但分出来,以后的维护成本肯定会高很多。
      

  5.   

    #6.再说一句,在部署的时候,可以把所有的数据库部署在同一台服务器上,且所有Team的代码不用做任何变动。