由数据来来支持是最安全的,能用sequence的就用,不支持的就用自增长类型

解决方案 »

  1.   

    说得好!抬头看看浏览器的URL就是答案。不过,对用户的ID用UUID还是有弊病的。
    主要是位数太长,以及varchar的效率问题……用户的ID通常需要用来在数据库中,绑定权限,一个软件系统,处处都需要验证权限,用这么长的ID,肯定还是有一定负担的。所以,用BigInt或Integer,肯定还是相对要好些,毕竟数值类型的处理效率是最高的。如果用户注册的频率不是像QQ申请号码那么繁忙,完全可以不考虑并发可能引起冲突的问题(尽管这样不严谨),直接在程序里面去控制每次增加1。
    自动编号肯定是不能用的,有可能用来作外键的主键,都不应该使用自动编号——至于为什么,当你感受过数据恢复的工作后,你就会知道自动编号是多愚蠢了。
      

  2.   

    我来给你提供一个方案
    在数据库中建一个表,专门用来处理这个唯一id
    字段有一个即可,比如为value,值为int型
    写一个方法来获取这个value
    首先update value这个字段+1,这样就锁住了该行,保证能同步
    然后select这个字段即可拿到唯一的值ps:也可以考虑把这个字段保存到文件中,但要注意同步的问题