我想在我的Android应用中代表一个播放列表。如果播放列表为空,我的项目只会按日期显示。如果播放列表包含少数项目,则应按顺序显示播放列表,然后显示其余项目(仍按日期)。
但是,我不确定如何有效地建模。我怎么能以一种方式构建我的数据库,以便在播放列表中插入项目(到任何位置)变得容易,并且仍然以快速(和合理的简单)方式选择它们。
示例我有一个包含项目A,B,C,D,E,F,G的列表。首先,项目按顺序显示:
A,B,C,D,E,F,G
用户现在将F和D添加到他的播放列表中。现在应按此顺序显示这些项目:
F,D,A,B,C,E,G
答案 0 :(得分:0)
我如何以这种方式构建我的数据库,以便变得容易 插入项目(到任何位置)
创建经典 heap table
,提供快速插入 - “插入您可以插入的第一个位置。”
仍然以快速(合理简单)的方式选择它们。
所以很有可能你需要创建index。索引是在列上创建的,这些列通常出现在 where clause
之后。通过创建索引也会创建 b+ tree
,因此在您想要创建任何索引时应该小心。
还有更多方法,但它强烈依赖于数据源类型,例如Oracle提供了许多类型的表,具有各种优点和缺点。
您将选择的具体方法还取决于数据库 - 对db的要求,表中的平均记录数等等。
答案 1 :(得分:0)
如果您想根据某种时间戳订购商品(例如,您希望最新的商品首先出现),则只需在表格中添加时间戳列,例如创建日期或更新日期/时间。然后,在查询表时,使用它进行排序。
SELECT * FROM ITEMS_TABLE
ORDER BY CREATION_DATETIME DESC;
答案 2 :(得分:0)
我正在使用此解决方案。我已经在表格中添加了一个额外的列,说" sequence"它将具有订单号,其中记录被提取..同时通过"序列"获取订单。你将获得所需的订单。
但是插入行或删除行需要对序列进行大量更新。