android - 查询同步数据库列与星期几

标签 android mysql sqlite

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

相关文章:

android - 既然可以直接使用修饰的静态成员,为什么还要使用 Intent?

PHP:高效地创建大型 HTML 表

MySql SUBSTRING_INDEX 如何不使用顺序扫描

oracle - SQLite与Oracle-计算日期差异-小时

android - 如何在 ORMLite 上用单引号更新属性?

android - 试图重新打开一个已经关闭的对象 : SQLiteDatabase:

Android - Java 泛型 SpinnerAdapter

java - 向标记添加多个标签

java - Android - 创建篮球统计屏幕

mysql - 我可以简化这个 MySQL 查询吗?