我想知道保持数据库尽可能整洁的最佳做法。数据库是通过 express.js/node 访问的 postgresql。它适用于我正在开发的 child 杂务应用程序,它具有以下架构:
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 个 child 在那里做家务,所以每天已经有大约 800 行被添加到 FINISHED TASKS
表中。
我有两个问题:
- 是否有更有效的方法来存储每个 child 一整天或类似的
已完成的任务
? - 随着规模的扩大,我每天可能会处理数万行 - 对于这样的应用来说,这可以接受吗?
最佳答案
通过中间桥接表将子表关联到任务表是执行此操作的常用方法。我对大型医院应用程序的经验是,一旦表格开始有数百万行并且性能下降,应用程序通常会将“完成的任务”存档到一个单独的存档表中。您最终可能会得到两个表,一个称为“事件任务”,其中包含“已完成”为 false 的任务,一旦任务完成,该行将移至存档的“已完成任务”表中。
根据您希望在未来对应用程序进行校对时付出的努力,现在就可以完成这项工作,以避免不得不重新访问它。
关于node.js - child 家务模式的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44422547/