我正在做一个android studio项目,并且正在使用SQLite数据库。在应用程序中,我允许用户输入当天的卡路里摄入量。
该数据库将具有相应的列以保存用户当天的卡路里摄入量。
星期一的卡路里摄入量将保存在Monday_Cal栏中。
编辑:
该应用程序在数据库中有两个表。 1存储用户详细信息,所需卡路里和Mon_Cal等。2存储产品详细信息和卡路里数量。用户选择产品,然后将卡路里添加到总数中。
例如,
我的问题是如何更改输入卡路里的列以匹配日期
例如:
当星期一结束时,选定的列将从Monday_Cal更改为Tuesday_Cal。
我最初的计划是一个简单的if语句,我想可以调用某些东西(Clock或Calender),但是我找不到有关该领域的任何材料或教程,我认为我可能搜索了错误的短语?如果这种方式不可能,那么还有其他选择。
最佳答案
您确实不希望将各个日期存储为用户表中的字段。如果您仅存储周一至周日,那么您将自己限制为每人只能保存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)
);
此架构使用
id
表的users
字段创建关系。要查找用户某天的卡路里摄入量,您将执行类似于以下内容的查询: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