以下是我目前的情况:
1、数据库目前是用sqlserver,客户在用的过程中可能会出现数据库数据合并的(用户可能会把数据库拷到笔记本上去参加交易会,然后再跟原来的数据库合并。这里如果用identity类型的话可能就会出现合并时主键重复.)
2.数据库以后要支持oracle(这样的话,如果为了要解决第一点的问题而用(uniqueidentifier类型),而oracle又没有这种类型,而且会带来性能上的问题)自己在网上找到一种可以在这两点问题找个平衡点的解决方法(http://www.cnblogs.com/zhenyulu/articles/25326.html)
但是还是有点疑惑。文中提到“COMB(Combine)”类型的数据类型还是用uniqueidentifier类型,不知改为varchar类型怎么样,主要是性能上有没有问题啊,这样设计好不好,能不能解决以上这两个问题啊,谢谢

解决方案 »

  1.   

    为了能和oracle兼容,建议把主键设置成varchar类型的,只是存入的数据还是guid转换而来的,如下,这样不管是sql server还是oracle,字段类型都是varchar类型的,两个库都有,而且存入的内容都是NewGuid转换而来的string,且是唯一的,不会冲突。string id = System.Guid.NewGuid().ToString();
      

  2.   

    1. 数据合并:
        可以数据导入导出机制(xml,Excel做数据交换都可以)
        另外可以考虑定义数据指点
       
    2. 系统支持两套系统:
    数据访问机制可以采用DAAB
    设计方面,primarykey 建议采用规则字符串(即按照一定规则生成的,可以是guid,可以时间组合,流水号什么的都已)