我想知道保持数据库尽可能整洁的最佳做法。数据库是由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
每个孩子一整天或类似的时间?有了scale,我每天可能会有数万行的记录——对于这样的应用程序来说,这是可以接受的吗?
最佳答案
通过中间桥接表将子表与任务表关联是常见的方法。我在大型医院应用程序中的经验是,一旦表开始有数百万行并且性能下降,应用程序通常会将“完成的任务”归档到单独的归档表中。您可能会得到两个表,一个称为“活动任务”,其中包含“已完成”为false的任务,任务完成后,该行将移动到存档的“已完成任务”表中。
根据您希望在将来验证应用程序时投入多少精力,现在可以这样做,以避免重新访问此应用程序。
关于node.js - child 琐事模式的数据库设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44422547/