我想知道保持数据库尽可能整洁的最佳做法。数据库是由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/

10-11 03:32
查看更多