1

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

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

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

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

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

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

3 回答 3

-1

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

SELECT * FROM ITEMS_TABLE
ORDER BY CREATION_DATETIME DESC;
于 2013-02-20T20:02:32.227 回答
-1

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

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

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

所以很可能你需要创建index。索引是在最常出现在后面的列上创建的where clause。通过创建索引也会b+ tree创建,所以当你想创建任何索引时应该小心。

还有更多方法,但它在很大程度上取决于数据源类型,例如 Oracle 提供了多种类型的表,具有各种优点和缺点。

此外,您将选择的具体方法还取决于数据库 - 对 db 的要求、表中的平均记录数等。

于 2013-02-20T19:03:11.867 回答
-1

我正在使用这个解决方案。我在表中添加了一个额外的列,说“序列”,它将具有要获取记录的订单号..同时通过“序列”获取表的顺序,您将获得所需的顺序。

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

于 2017-08-02T18:04:50.907 回答