V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sakudie
V2EX  ›  程序员

请教类似贴吧帖子的楼数是怎么记录的

  •  
  •   sakudie · 2018-05-13 20:34:02 +08:00 · 1793 次点击
    这是一个创建于 2386 天前的主题,其中的信息可能已经有所发展或是发生改变。
    回复表中有个全局 id 作为数据库的自增主键,现在想增加一个字段记录回复在帖子中的楼层数(删除的回复仍然占用一个楼层),应该怎么实现比较好,碰到并发回复的时候不会引起冲突
    opengps
        1
    opengps  
       2018-05-14 08:44:46 +08:00
    自己定义个主键吧,xx_yy,xx 是贴子 id,yy 是楼层,或者联合主键,xx 伪外键,yy 伪主键,实际上 xxyy 联合起来当主键用
    sakudie
        2
    sakudie  
    OP
       2018-05-14 09:03:06 +08:00
    @opengps 这样做不是每一次都需要查询一下上次的最大楼层 id 吗,然后才能进行下一次插入
    linpf
        3
    linpf  
       2018-05-14 09:09:16 +08:00
    @sakudie 主题表里加一个当前最大楼层的字段就可以了。像你说的并发问题可以通过加锁来解决
    opengps
        4
    opengps  
       2018-05-14 09:13:58 +08:00
    @sakudie 3 楼的比较办法简单,我刚才说的只考虑了便于查询,确实需要先查询后添加,不过我以前是用了数据库函数实现标记,查询一次之后占用 id,函数锁住数据避免重复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:15 · PVG 20:15 · LAX 04:15 · JFK 07:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.