我正在做一个 android studio 项目,我正在使用 SQLite 数据库。在应用程序中,我允许用户输入当天的卡路里摄入量。
数据库将有相应的列来保存用户当天的卡路里摄入量。 星期一的卡路里摄入量将保存在 Monday_Cal 列中。
编辑: 该应用程序在数据库中有两个表; 1 存储用户详细信息、所需卡路里和 Mon_Cal 等。 2 存储产品详细信息和卡路里量。用户选择产品并将卡路里添加到总量中。
例如,
我的问题是如何使输入卡路里的列更改以匹配日期
例如:
当星期一结束时,所选列将从 Monday_Cal 更改为 Tuesday_Cal。
我最初的计划是一个简单的 if 语句,我认为有一些我可以调用的东西(时钟或日历),但是我找不到该领域的任何 Material 或教程,我认为我可能正在搜索错误的短语?如果这种方式行不通,是否还有其他替代方案。
最佳答案
您确实不想将个别日期存储为用户表中的字段。如果您只存储周一至周日,那么您就限制自己只能为每人保存 7 天的历史记录。
更好的解决方案是将卡路里摄入量分离到自己的表中,该表与用户表相关,如下所示:
create table calorie_intake(
user_id integer not null,
intake_date date,
calories integer,
primary key(user_id, intake_date),
foreign key (user_id) references users(id)
);
此架构使用 users
表的 id
字段来创建关系。要查找用户特定日期的卡路里摄入量,您可以执行类似于以下内容的查询:
select calories
from users u
inner join calorie_intake i
on u.id = i.user_id
where u.id = 1
and intake_date = '2015-04-10';
这将为您提供 ID 为 1
的用户在 2015 年 4 月 10 日的卡路里摄入量。
这种创建关系并摆脱“一个表中的所有数据”设计的过程称为规范化,有大量关于该主题的信息,如果您要进行任何数据库工作,您搬起石头砸自己的脚,却没有意识到这个概念。 heres a link to get started
关于android - 查询同步数据库列与星期几,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29550466/