V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gebishushu
V2EX  ›  问与答

防止注册的 id 重复 有什么思路吗?

  •  
  •   gebishushu · 252 天前 · 1404 次点击
    这是一个创建于 252 天前的主题,其中的信息可能已经有所发展或是发生改变。
    总不能 写个 sql 语句先查询下这个 id 有没有吧?有的话提示重复?
    还有更好的办法吗?
    15 条回复    2023-06-20 10:08:52 +08:00
    Zyhusesit
        1
    Zyhusesit  
       252 天前
    可以像 Reddit 一样给用户分配一个不会重复的 ID, 然后不允许用户修改.
    Valid
        2
    Valid  
       252 天前
    自增 id 啊
    gebishushu
        3
    gebishushu  
    OP
       252 天前
    @Valid 用户注册的 id 自己定义的那种用户名
    Maboroshii
        4
    Maboroshii  
       252 天前 via Android
    就是你说的这样啊,加上唯一索引,写 db 的时候再让数据库帮你校验一遍。
    不要把简单的事情想复杂了
    gebishushu
        5
    gebishushu  
    OP
       252 天前
    @Maboroshii 谢谢
    我是考虑比如数据量大了的情况 假如有 100w 个用户,每次看有没有重复的查询 会卡不
    Maboroshii
        6
    Maboroshii  
       252 天前 via Android
    @gebishushu 不会,有索引就是毫秒级别。
    weazord
        7
    weazord  
       252 天前 via iPhone
    @gebishushu 100w 个 ID 放数据库没问题的,不算是很大的数字,放在注册的时候基本无感
    gebishushu
        8
    gebishushu  
    OP
       252 天前
    @weazord
    @Maboroshii
    谢谢了
    Rocketer
        9
    Rocketer  
       252 天前 via iPhone
    还真就是写个 sql 查一下,设成唯一索引很快的,b-tree 的原理了解一下
    akira
        10
    akira  
       252 天前
    你怕 100w 个用户的时候注册会有问题,但是实际情况是一定是其他地方会先崩。
    更多的时候,其实项目初期没必要太过于考虑性能问题,先把业务逻辑跑起来把。
    zmaplex
        11
    zmaplex  
       252 天前 via Android
    不想要想复杂了,50w 用户以内按一般实践来就行,遇到问题再用根据具体问题看看哪个方案更合适。
    justfindu
        12
    justfindu  
       252 天前
    总不能? 那不然呢? 100w 而已
    Naccl
        13
    Naccl  
       252 天前
    布隆过滤器
    jackOff
        14
    jackOff  
       252 天前 via Android
    使用 uuid,基于年月日时分秒再加上基础的 uuid 生成的 uuid 就是绝对唯一
    PerFectTime
        15
    PerFectTime  
       252 天前
    学贴吧 id 做主键,hhhhh (馊主意,不要尝试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3485 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:58 · PVG 18:58 · LAX 02:58 · JFK 05:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.