使用SQLite数据库中的项检索有序列表

时间:2015-01-21 05:21:12

标签: sql sqlite

我正在为数据库设计表格。

在Android应用程序中,我从服务器下载JSON中的有序列表。我将列表及其项目插入到SQLite数据库中。

列表的列:

+ list_id
+ timestamp

列表项表的列:

 + item_id
 + timestamp
 + list of list_ids (a list item can be in multiple lists)

当我检索列表的项目时,它们应该与我下载它们时的顺序相同。存储“列表顺序"”的最有效方法是什么?一个选项是让项目具有一个列,其中包含一对列表,如:list:indexInList。赞赏有关更好的方法的建议。

澄清:项目可以多次出现在列表中,例如列表中的item_ids:1,2,3,1,5。

2 个答案:

答案 0 :(得分:1)

如果您有一个带有自动增量的id列,请在查询中添加ORDER BY id

您可以重新排序表格。

ALTER TABLE tbl_name ORDER BY col_name 

答案 1 :(得分:1)

当您可能需要访问单个项目时,绝不应在列中存储值列表。

对于像这样的M:N关系,您通常使用third table

CREATE TABLE items_in_lists (
    list_id INTEGER REFERENCES lists(list_id),
    item_id INTEGER REFERENCES items(item_id),
    PRIMARY KEY(list_id, item_id)
);

一旦有了这个表,就可以在列表中存储项目的顺序。