首页 > 如何设计支持人工排序的列表的数据库结构?

如何设计支持人工排序的列表的数据库结构?

例如 SegmentFalut 的标签这个页面:http://.com/tags

假设网站管理是可以手工安排各个标签的顺序的,那么数据库应该如何设计?修改顺序时的 API 请求应该如何设计?


index + modify_time


自己答一个我的想法。

数据库中,每个标签上储存一个实数,从小到大地标识标签的顺序。例如第一个标签是 -5, 排在第一个;第二个是 -2, 第三个是 0, 第四个是 4.

查询的时候很好办,直接按这个字段排序即可。

修改顺序的时候,请求的内容是类似于「将标签 A 置于 B 和 C 之间」这样的,然后后端把 A 的顺序设置为 B + (C - B) / 2.

【热门文章】
【热门文章】