android - 存储任意排序顺序的最有效方法?

标签 android mysql sqlite sorting

我目前正在开发一款 Android 应用程序,用户可以通过拖放的方式按他们想要的任何顺序对他们的列表进行排序。因此,我必须将排序顺序存储在列中的变量中。我正在考虑给每一行一个数字,如 100000、200000、300000 等,如果用户在 100000 和 200000 之间移动一个项目,那么它的排序编号将成为其邻居的平均值,即 150000。这样,我只需要更新如果我执行正常的 i+1 排序值,则单行的排序编号与表中的每一行相对。

什么是最有效的?大数字使用更多资源还是需要更长的时间来排序?我只期望 <100 行,所以如果大数字需要更长的时间进行排序,我可能最好使用较小的数字并更频繁地“重置”(当两个排序数字相互融合时)。我知道只有这么少的行,如果我只执行 i+1 排序方法并每次都更新我的数据库中的每一行,那并不重要。但我也在将我的 SQLite 数据与 BAAS 同步,其中大多数不允许批量保存。因此,对于我修改的每一行,我都必须发出 1 个 API 请求。这就是为什么我在重新订购商品时尽量减少修改的行数。

如有任何帮助,我们将不胜感激。

最佳答案

我最终只是使用我最初的方法,给每行一个数字,如 100000、200000、300000 等,如果用户在 100000 和 200000 之间移动一个项目,那么它的排序编号将成为其邻居的平均值,即 150000。由于我的行数相对较少~50,所以我选择了这种可能效率不高但最简单的方法。

关于android - 存储任意排序顺序的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29997993/

相关文章:

android - 同时访问后置和前置摄像头

java - 应用程序仅适用于第一个输入,如果插入第二个输入,则崩溃

mysql - 如何减少具有 200k+ 记录的表的 select * from table_name 查询执行时间?

django - ResponseError 'zunionstore' 命令的参数数量错误

php - 使用 bindParam() 的非常基本的 PDO 方法

android - Android TV - 日期选择器

android - android的应用程序屏幕如何恢复正在运行的 Activity ?

sql - 取某列的平均值,然后过滤掉所有小于平均值的行,然后统计行数

MySQL SELECT 具有最大相似度的行

php - 无法将数组绑定(bind)到 CDbCriteria (Yii)