例如 SegmentFalut 的标签这个页面:http://segmentfault.com/tags
假设网站管理是可以手工安排各个标签的顺序的,那么数据库应该如何设计?修改顺序时的 API 请求应该如何设计?
例如 SegmentFalut 的标签这个页面:http://segmentfault.com/tags
假设网站管理是可以手工安排各个标签的顺序的,那么数据库应该如何设计?修改顺序时的 API 请求应该如何设计?
4 回答1.5k 阅读
5 回答608 阅读
3 回答597 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
3 回答685 阅读
2 回答1k 阅读
3 回答770 阅读✓ 已解决
自己答一个我的想法。
数据库中,每个标签上储存一个实数,从小到大地标识标签的顺序。例如第一个标签是 -5, 排在第一个;第二个是 -2, 第三个是 0, 第四个是 4.
查询的时候很好办,直接按这个字段排序即可。
修改顺序的时候,请求的内容是类似于「将标签 A 置于 B 和 C 之间」这样的,然后后端把 A 的顺序设置为
B + (C - B) / 2
.