從2方法我更喜歡第一個。
我的想法:
3. Method:
如果您的論壇將是高流量,可以可以使用集合來處理數據。 您創建1-2個新表,例如:
user_comment_aggregate (user_discuss_aggregate same table structure)
fields:
uca_id
uca_user_id
uca_datetime
值的示例:
1, 123, '2014-02-26 07:08:09'
2, 123, '2014-02-26 07:11:22'
3, 123, '2014-02-26 07:22:33'
4, 456, '2014-02-26 07:33:44'
你只要把快速插入到這個表user_ID的,現在();
腳本處理此表中的所有行。 例如如何爲用戶123和更新簡檔更新後:
UPDATE user_forum_profile SET CountComments= CountComments +3 WHERE user_id= 123
然後從該聚集的表中刪除所有處理的數據。
優勢:
- 也許少user_forum_profile更新,因爲只有1所有新的崗位數
,您可以通過服務器的cron腳本每天處理此表倍。 如果你在午夜處理此或更高版本和更新CountDiscussions和CountComments
也許這可以使一個最低的服務器的負載,但是...... 缺點: 職位數量達不到最新的每一秒,只是每天(或者當你運行這個腳本時)。此外,您可以在每小時或每15分鐘等運行此腳本...
第2個是正常形式。觸發器可以更好地實現第一個目標。我會和第二個一起去。 –
我想第一個會更好,更不用說你可以緩存查詢,所以它不會每次都重新運行。 – Prix
第二是更好,我相信,沒有必要每次都做額外的工作,直到你需要讀數。有道理:) – avisheks