我该如何存储网站的链表类型数据?

时间:2017-04-17 11:32:48

标签: mysql database-design linked-list

我正在考虑拥有前7个项目列表。 因此,链接列表会出现在我脑海中,因为新的高排名项目将被添加,或从较低级别提升,以将较低排名的项目压缩一步。我需要它的方式。 我只需要根据排名访问前7个(选定数量)的对象。 我该如何将其存储在数据库中?或者我应该将它存储在文件存储中?我可以为已经排名的项添加一些项目或编写剪切/粘贴类型代码,但不幸的是,我的db(MYSQL)不起作用。那么,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

考虑添加"新号码3"的用户界面。这意味着将所有3和更大的东西撞到一个。

所以......你有一个等级的列。 SQL是

UPDATE MyList SET rank = rank + 1 WHERE rank >= 3;
INSERT INTO MyList (rank, ...)
    VALUES (3, ...);

获得前7名:

SELECT * FROM MyList WHERE rank <= 7 ORDER BY rank;

To&#34; move&#34;目前排名第12的项目排名第5,有很多方法。这是一个:

UPDATE MyList SET rank = -1 WHERE rank = 12;
UPDATE MyList SET rank = rank + 1 WHERE rank BETWEEN 5 AND 12;
UPDATE MyList SET rank = 5 WHERE rank = -1;