在SQLite数据库中表示LinkedList



我想在我的Android应用程序中表示一个播放列表。如果播放列表是空的,我的项目只按日期显示。如果播放列表包含一些项目,则应按顺序显示播放列表,然后显示其余项目(仍按日期)。

然而,我不确定如何有效地建模。我怎么能以一种糟糕的方式构建我的数据库,这样就可以很容易地在播放列表中插入项目(到任何位置),并且仍然以快速(合理简单)的方式选择它们。

示例我有一个包含项目a、B、C、D、E、F、G的列表。首先,项目按顺序显示:

  A,B,C,D,E,F,G

用户现在将F和D添加到他的播放列表中。项目现在应该按以下顺序显示:

 F,D,A,B,C,E,G

如果您想根据某种时间戳订购项目(例如,您希望最新的项目首先出现),那么只需在表中添加一个时间戳列,例如创建日期或更新日期/时间。然后,在查询表时,使用它进行排序。

SELECT * FROM ITEMS_TABLE
ORDER BY CREATION_DATETIME DESC;

我如何以这样的方式构建我的数据库,以便插入项目(到任何位置)

创建经典的heap table,它提供快速插入-"在您可以插入的第一个位置插入。"

并且仍然以快速(并且相当简单)的方式选择它们。

所以很可能您需要创建索引。索引是在最常出现在where clause后面的列上创建的。创建索引也是b+ tree创建的,因此在创建任何索引时都应该小心。

还有更多的方法,但它强烈依赖于数据源类型,例如Oracle提供了许多类型的表,这些表有各种优点和缺点。

您将选择的具体方法还取决于数据库对数据库的要求、表中记录的平均数量等等

我正在使用这个解决方案。我在表中添加了一个额外的列,比如"sequence",它将有要提取记录的顺序号。。在获取订单时,通过"序列"对表格进行排序,您将获得所需的订单。

但插入一行或删除一行需要对序列进行大量更新。

相关内容

  • 没有找到相关文章

最新更新