儿童家务模式的数据库设计

Posted

技术标签:

【中文标题】儿童家务模式的数据库设计【英文标题】:Database design for kids chore schema 【发布时间】:2017-11-09 09:23:18 【问题描述】:

我想知道保持数据库尽可能整洁的最佳做法。该数据库是由 express.js/node 访问的 postgresql。它适用于我正在开发的儿童杂务应用程序,它具有以下架构:

CHILDREN
    id
    name
    points
    rate
    created_at
    updated_at
    user_id

TASKS
    id
    description
    value
    days (boolean array - eg. [0,0,0,0,0,0,0])
    periods (boolean array - eg. [0,0])
    created_at
    updated_at
    user_id

FINISHED TASKS
    id
    task_id
    child_id
    completed (boolean)
    created_at
    updated_at
    period (boolean)
    day (int (0-6))

对于每个完成的任务,都会在数据库中创建一行。那里只有 400 个孩子做家务,每天已经有大约 800 行添加到 FINISHED TASKS 表中。

我有两个问题:

    有没有更有效的方法来存储FINISHED TASKS 每个孩子一整天或类似的时间? 随着规模的扩大,我最终可能会每天处理数万行 - 这对于这样的应用程序是否可以接受?

【问题讨论】:

【参考方案1】:

通过中间桥接表拥有与任务表相关的子表是执行此操作的常用方法。我对大型医院应用程序的经验是,一旦表开始有数百万行并且性能下降,应用程序通常会将“完成的任务”归档到单独的归档表中。您可能最终会得到两个表,一个称为“活动任务”,其中包含“已完成”为假的任务,一旦任务完成,该行将移动到存档的“已完成任务”表中。

根据您希望在未来对应用程序进行校对方面付出多少努力,现在可以这样做,以防止不得不重新访问。

【讨论】:

以上是关于儿童家务模式的数据库设计的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在专为儿童设计的 iOS 应用中使用 Firebase 吗?

计算机毕业设计springboot+vue+elementUI留守儿童爱心捐赠网站

计算机毕业设计之java+springboot基于vue的留守儿童爱心网站

计算机毕业设计jsp+mysql 基于SSM的儿童疫苗接种管理系统

一套儿童主题的响应式网页设计精品素材

JAVA设计模式-策略模式