日期:2014-05-18  浏览次数:20462 次

疑难问题,求思路,给予好方法者另加100
问题描述:
现有三个库A,B,C
A库有表AllUser;
B,C库有表User,RightBind,Ticket

表中关键字段结构
A---> AllUser
          UserID-----------存储所有用户ID
B,C-----> User
          UserID-----------各存储一部分用户ID,两库USER之和=A库ALLUSER中用户
          RightBindID--------权限组ID
B,C   -----> RightBind
          RightBindID--------权限组ID
          TicketID   ----------券信息,用于计费
B,C   -----Ticket
          TicketID   ---------券信息ID

问题:由于以前实际的用户权限信息分别存储在了两个库里,现在要合并成一个库,出现以下问题
1、由于RightBindID,TicketID都是在各个库中单独自增的主键,合并后ID会改变,如何修改绑定,保证权限的正确性
比如:user1在B中对应权限rightbindid   =   1;
            user2在C中对应权限rightbindid   =   1;
合并到新库后,由于值的重新插入,rightbindid,变为1,2,则合并过程中应该修改对应   user1在D中对应权限rightbindid   =   1;
            user2在D中对应权限rightbindid   =   2;

现在求合并修改绑定的好方法,如果方法满意,另260分全送

不知道我把问题描述清楚没有

------解决方案--------------------
在被合并的数据库表上建插入触发器,插入时首先判断是否有这个权限,如:user1在B中对应权限rightbindid = 1,就插入rightbindid = 2.
想法是这样,楼主试试.
------解决方案--------------------
先关联修改可能重复的自增列后再
SET IDENTITY_INSERT products ON
插入显示的数据到一个库
SET IDENTITY_INSERT products OFF
------解决方案--------------------
找到B库中表RightBind和User表及Ticket表的对应的id最大值,再在C库中将对应表的各ID值改为B库中求得的ID最大值加一,最后合并
------解决方案--------------------
先在各数据库设置好串联更新,再分配各库所允许的取值范围,做相应加减及更新后再导入添加记录,结合gahade(与君共勉) ( 的思路