2017-06-07 55 views
1

我想知道保持數據庫儘可能整潔的最佳做法。數據庫是由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名孩子在那裏做家務,每天在FINISHED TASKS桌上已經增加了大約800行。

我有兩個問題:

  1. 是否有存儲FINISHED TASKS無論是對每個孩子或類似一整天的更有效的方法?
  2. 隨着規模的擴大,我每天最終可能會有成千上萬的行 - 這對於像這樣的應用程序可以接受嗎?

回答

2

通過中間橋接表來創建與任務表相關的子表是實現此目的的常用方法。我對大型醫院應用程序的經驗是,一旦表開始具有數百萬行並且性能下降,則應用程序通常將「完成的任務」歸檔到單獨的歸檔表中。你最終可能會得到兩個表,一個名爲「活動任務」,其中包含「已完成」爲false的任務,一旦任務完成,該行將移動到已歸檔的「已完成任務」表中。

根據您想要在將來驗證應用程序時付出多少努力,現在可以完成此操作,以防止必須重新訪問該應用程序。