我有一个混合的Cordova Android移动应用程序,它在SQLite数据库中记录用户活动。每个行条目都有列,有助于表征活动的性质。一个这样的列在一周的不同日期记录三个子活动,我将其表示为三个子活动的整数数组[0..6,7..13,14..20]
。此外,我希望能够区分"正常"几天和几天恰好是公众假期。我是通过在数组中记录一个否定条目来实现的。为了使这更清楚,这是一个例子
[0,-2,9,13,-18,20]
代表
这相对简单 - 我可以将数组存储为JSON。但是,我也希望能够尽可能高效地查询此集合的成员资格。我能想到的唯一方法是使用LIKE
条件。例如
SELECT * FROM TABLE WHERE activity_column LIKE '%-2%'
我期望在周二公众假期记录活动的所有行返回。
我怀疑这可能会奏效。但是,对于Android数据库,我是一个新手。我知道SQLite是默认解决方案。是否有一个选项 - 无论是在SQLite中还是在替代方案中 - 都可以呈现这种存储和放大器。搜索更有效,更少复杂?
答案 0 :(得分:0)
这一切都归结为你如何设计你的sql库。
一种方法可能是拥有3个表,每个表一个。每个中的键可以是当天的时间戳,然后您可以为int数据的json数组添加列。
您还可以添加其他生活质量列,例如“day”,您可以在其中保留星期几的int表示。
这样,如果您想在星期二注册的Activity1数据,您只需查询
SELECT * FROM Activity1 WHERE day = 1