我正在做一个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

10-04 23:37
查看更多