2011-02-09 99 views
1

我有一個Facebook'像'應用程序 - 多個'團隊'的虛擬白板誰共享該項目的共同'牆'。我有大約9-12個實體可以捕獲數據。我試圖讓用戶的主頁顯示自過去登錄以來發生的活動更新 - 比如Facebook發佈通知的方式:發佈更新到「a」牆

「[USER]已經完成了[某些實體]的[某些活動] - 20分鐘前「

其中可點擊的鏈接和活動主要(而不僅僅是)CRUD。我將不得不堅持這些更新。我使用MySQL作爲後端數據庫,並想到每個項目都有一個可以存儲活動的更新表。但似乎每桌需要有一個觸發器,這隻會是多餘的。更多情況很難確定該更新表的表格模式,因爲有許多不同的實體。

約束是使用MySQL,但我打開其他選項「如何」來實現此功能。

任何想法?

PS:使用jQuery + REST +的Restlet + Glassfish的+ MySQL的+ Java的

回答

0

它沒有在數據庫級別進行處理。您可以擁有在每次操作中調用的事務日誌記錄服務。每筆交易都得到一個(唯一的,順序的)密鑰。

存儲人看到的最後一個項目的密鑰,並顯示密鑰更高的任何更新,更新上次看到的密鑰。

定期例程可以遍歷用戶帳戶,並查看所有用戶中最低的事務日誌記錄密鑰(即,所有用戶已經看到的最新日誌記錄是什麼),並使用密鑰刪除/存檔任何條目< =那一個。

+0

這不是一個單一的項目,而是像一個牆上的帖子。用戶可能在他上次登錄時看到了一組更新。在新的登錄頁面上顯示一個新的集合,而舊的集合只是「向下移動」。我不知道如何使用事務日誌記錄服務(這不在數據庫級別)?存儲過多的用戶看到的所有項目的'密鑰'的冗餘。如果我將它記錄在應用程序層,我將首先必須等待數據庫提交,然後才能登錄。我可以從條目中獲取時間戳並將其添加到日誌記錄表中 - 我的實體太多了! – PhD