2012-03-02 19 views
2

我基於成就創建網站,並將成就分爲50個組。每個小組都有500個成就。完成任務後,我會在數據庫中記錄完成日期。我總是跟蹤每個小組的進度。例如:跟蹤Web應用程序數據庫中的進度或級別的正確方法

Group 1: 5/500 
Group 2: 89/500 
Group 3: 21/654 
Overall: 115/1654 

我的問題,它是一個不好的做法來計算從頭這些進度報告所有的時間,或者我應該有一個存儲這些進步另一個表,我現在,然後更新它的每一個?

回答

1

創建一個跟蹤個體成就並隨時計算它們的活動表。與此相關的美妙之處在於,如果您改變計算成就的方式,則根本不需要觸摸原始數據

如果這變得太慢,那麼您可以創建一個成就跟蹤表,以計算成就並存儲它們定期進行查詢。

+0

意思是一直計算它的現場? – rvk 2012-03-02 08:40:24

+0

最初,您可以一直在現場進行計算。但是,如果速度變慢,那麼您可以每天計算一次,並將計算結果保存在一個單獨的表中,您可以使用它來顯示進度報告 – 2012-03-02 08:43:26

0

我相信你想知道你是否應該Cache你的輸出與否。這真的取決於你的應用程序。

  • 它是一種按「原樣」多次部署的產品嗎?實現緩存。
  • 否則,您是否有報告中的性能問題?
    • ?不要緩存。
    • ?實現緩存。

有緩存的各種策略,爲您的一種應用(我只是這裏假設你有多個「對象」,可以讓這些成就的集合),我寧願在某些無效緩存事件。就像對象x獲得成就時一樣,此「事件」會使緩存失效。

輸出代碼首先查詢緩存,並且只有在無效時才執行重建它的代碼。這確保輸出始終有效,而不是每x小時重新構建所有緩存。

相關問題