数据模型饮食记录

上篇文章我们先完成了食物和运动的数据模型的设计,有了这些数据我们就可以基于它们添加到饮食记录中去了

一、回顾页面原型

页面的顶部是对饮食的统计信息,这个后面再说

下面就是饮食记录列表的信息,具有分组信息(类型),数据就有图片、名字、建议量等

二、正式开发前的准备

1.数据模型

还是跟上一篇文章一样,因为数据模型的代码较为固定,所以黑马为我们早就提供好了这些代码

export default class RecordType{
  /**
   * 类型id
   */
  id: number
  /**
   * 类型名称
   */
  name: ResourceStr
  /**
   * 类型图标
   */
  icon: ResourceStr
  /**
   * 类型推荐最小卡路里
   */
  min: number
  /**
   * 类型推荐最大卡路里
   */
  max: number

  constructor(id: number, name: ResourceStr, icon: ResourceStr, min: number = 0, max: number = 0) {
    this.id = id
    this.name = name
    this.icon = icon
    this.min = min
    this.max = max
  }
}

/**
 * 饮食记录的页面数据模型
 */
export default class RecordVO {
  /**
   * 记录id
   */
  id: number
  /**
   * 饮食记录类型
   */
  typeId: number

  /**
   * 卡路里总数
   */
  calorie: number

  /**
   * 记录中的食物或运动信息
   */
  recordItem: RecordItem

  /**
   * 食物数量或运动时长,如果是运动信息则无
   */
  amount: number = 0
}

2.数据操作接口

enum RecordTypeEnum {
  /**
   * 早餐
   */
  BREAKFAST,
  /**
   * 午餐
   */
  LUNCH,
  /**
   * 晚餐
   */
  DINNER,
  /**
   * 加餐
   */
  EXTRA_MEAL,
  /**
   * 运动
   */
  WORKOUT
}

/**
 * 记录类型常量
 */
const RecordTypes: RecordType[] = [
  new RecordType(0, $r("app.string.breakfast"), $r("app.media.ic_breakfast"), 423, 592),
  new RecordType(1, $r("app.string.lunch"), $r("app.media.ic_lunch"), 592, 761),
  new RecordType(2, $r("app.string.dinner"), $r("app.media.ic_dinner"), 423, 592),
  new RecordType(3, $r("app.string.extra_meal"), $r("app.media.ic_extra_m"), 0, 169),
  new RecordType(4, $r("app.string.workout"), $r("app.media.ic_workout")),
]

export {RecordTypes, RecordTypeEnum}

class RecordModel {
    //需要我们自己开发
  }

let recordModel = new RecordModel()

export default recordModel as RecordModel

三、正式开发

我们需要给RecordModel准备关系型数据库表,所以我们要单独定义一个数据库对象

export default class RecordPO{
  /**
   * 记录id
   */
  id?: number
  /**
   * 饮食记录类型
   */
  typeId: number
  /**
   * 记录中的食物或运动信息
   */
  itemId: number

  /**
   * 食物数量或运动时长,如果是运动信息则无
   */
  amount: number
  /**
   * 记录的日期
   */
  createTime: number
}

其中的建表语句黑马也早就为我们写好了

/**
 * 数据库建表语句
 */

const CREATE_TABLE_SQL: string = `
 CREATE TABLE IF NOT EXISTS record (
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   type_id INTEGER NOT NULL,
   item_id INTEGER NOT NULL,
   amount DOUBLE NOT NULL,
   create_time INTEGER NOT NULL
 )
 `


class RecordModel {

  }

 

let recordModel = new RecordModel()

export default recordModel as RecordModel

那么其实到这里本篇文章的内容已经结束了,由于作者的每一个文章都是对应的黑马的一个视频,所以他下节课讲我就下篇文章写(狗头)

OK,我们下篇文章接着讲,我们这里附上黑马程序员数据模型饮食记录的视频链接,文章配合视频更好理解哦。

体检数据分析模型的构建与实现涉及多个关键步骤,包括数据收集、清洗、特征选择、模型定义、训练与评估等。以下是一个详细的流程: ### 数据收集 首先需要从体检中心或相关机构获取体检数据。这些数据通常包括个人的基本信息(如年龄、性别)、生理指标(如血压、血糖、胆固醇水平)、生活习惯(如饮食运动)以及既往病史等[^5]。 ### 数据预处理 - **数据清洗**:去除重复记录、修正错误数据,并处理缺失值。例如,在SPSS中可以通过“数据→选择个案→删除缺失值”来清理数据集[^5]。 - **特征工程**:根据业务需求对原始数据进行转换和加工。比如将连续型变量离散化为类别型变量,或者创建新的衍生特征以更好地捕捉数据中的模式。 ### 特征选择 确定哪些自变量对于预测目标变量(因变量)是重要的。这一步骤可以通过统计测试(如T检验)、相关性分析或其他机器学习方法来进行。确保所选特征能够有效反映健康状况的变化趋势。 ### 模型定义 定义模型的结构或形式。在体检数据分析中,可以采用多种建模方式: - 如果目标是分类问题(如是否患有某种疾病),可以使用逻辑回归、决策树、随机森林等算法。 - 对于回归问题(如预测某项指标的具体数值),线性回归、支持向量机(SVM)或神经网络可能是合适的选择。 - 聚类分析模型也可以用来发现潜在的用户群体,通过年龄、性别、消费习惯等多个维度划分不同的健康风险等级[^4]。 ### 模型训练与调优 利用选定的数据集训练模型,并通过交叉验证等技术调整参数以优化性能。在此过程中,可能需要反复迭代修改模型模式,直到达到满意的准确度和泛化能力。 ### 模型评估 最后,使用独立的测试集来评估模型的表现。常用的评价指标包括准确率、召回率、F1分数等,具体取决于任务类型。 ### 系统架构设计 如果计划开发一个基于Web的应用程序来展示和交互式地探索体检数据,则可以考虑采用MVC三层架构: - **视图层**负责前端展示; - **控制层**处理用户的请求并协调后端服务; - **模型层**执行核心业务逻辑及数据库操作[^3]。 ```python # 示例代码 - 使用Python Scikit-learn库构建简单的逻辑回归模型 from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # 假设X为特征矩阵,y为目标变量 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) logreg = LogisticRegression() logreg.fit(X_train, y_train) y_pred = logreg.predict(X_test) print("Accuracy:", accuracy_score(y_test, y_pred)) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值