Android 高效地存储&;在SQLite中查询整数数组

Android 高效地存储&;在SQLite中查询整数数组,android,sqlite,set,sql-like,Android,Sqlite,Set,Sql Like,我有一个混合Cordova Android移动应用程序,它在SQLite数据库中记录用户活动。每一行条目都有帮助描述活动性质的列。其中一列记录了一周中不同日期的三个子活动,我将其表示为三个子活动的整数数组[0..6,7..13,14..20]。此外,我希望能够区分“正常”日的活动和恰好是公共假日的活动。我是通过在数组中记录一个负数来实现的。为了让这一点更清楚,这里有一个例子 [0,-2,9,13,-18,20] 代表 周日的子活动A 公众假期星期二分活动A 周三和周六的子活动B 公众假期星期

我有一个混合Cordova Android移动应用程序,它在SQLite数据库中记录用户活动。每一行条目都有帮助描述活动性质的列。其中一列记录了一周中不同日期的三个子活动,我将其表示为三个子活动的整数数组
[0..6,7..13,14..20]
。此外,我希望能够区分“正常”日的活动和恰好是公共假日的活动。我是通过在数组中记录一个负数来实现的。为了让这一点更清楚,这里有一个例子

[0,-2,9,13,-18,20]
代表

  • 周日的子活动A
  • 公众假期星期二分活动A
  • 周三和周六的子活动B
  • 公众假期星期五分活动C
  • 周六分活动C
这相对简单-我可以将数组存储为JSON。但是,我也希望能够尽可能高效地查询此集合的成员资格。我能想到的唯一方法就是使用类似于的条件。e、 g

SELECT * FROM TABLE WHERE activity_column LIKE '%-2%'
我希望返回在公共假日(周二)有记录活动的所有行


我怀疑这可能会奏效。然而,我是一个新手,当谈到安卓数据库。我知道SQLite是默认的解决方案。在SQLite或其他替代方案中,是否有一个选项可以使这种存储和搜索更高效、更不复杂?

这一切都取决于您如何设计sql库

一种方法可能是有3个表,每个表对应一个活动。每个字段中的键可以是一天的时间戳,然后可以为int数据的json数组设置列

您还可以添加一个附加的“生活质量”列,如“day”,在其中可以保留一周中某一天的int表示形式

这样,如果您想在周二注册Activity1的数据,只需查询

SELECT * FROM Activity1 WHERE day = 1