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

如何维护数据库中存储的链状结构数据?

  •  1
     
  •   doraemonext · 2015-03-13 22:03:35 +08:00 · 2210 次点击
    这是一个创建于 3542 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在在仿做公众号多图文的功能,数据在我的数据表中是这样存储的

    id
    parent_id
    name
    ...(other data)
    

    也就是说,在数据库中,一个多图文是这样靠 parent_id 链式连起来的。

    问题是在修改该数据时,一个多图文会被作为一个整体进行修改,比如原来该多图文包含4条子图文,现在修改为3条或者5条。现在我的做法是先删除数据库中该图文的所有数据,然后重新添加,这样非常方便,但结果是其中的各个子图文的主键 id 都被更新了。因为每个子图文会有一个静态链接,所以也不能用主键来作为 URL 参数来访问,只能再为每个子图文新建一个不变的 key 作为标识符。

    想问一下大家对于这种情况有没有更加有效的修改方案?感觉自己这种方法做了很多无用功。

    1 条回复    2015-03-14 00:32:39 +08:00
    oott123
        1
    oott123  
       2015-03-14 00:32:39 +08:00
    我觉得很合理啊……

    或者严格的区分子图文的修改和删除:4->3 就把多的那条删掉 4->5 就另外加一条
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2862 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:46 · PVG 16:46 · LAX 00:46 · JFK 03:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.