2012-03-11 10 views
2

私はいくつかのアドバイスが必要です... 私はユーザが特定のアクションを実行できるアプリケーションを持っています。 たとえば、ユーザーは友だちを持つことができます。 ... ユーザーは彼の友達の活動を見ることができます。 DBにアクティビティログをどのように実装する必要がありますか? 新しいテーブルを用意する必要がありますか? 複数のテーブルからクエリを実行し、結合した結果をソートできますか?DBにユーザの履歴を格納するベストプラクティス

答えて

3

activity_typeテーブルとログテーブルを作成することをお勧めします。

activity_type | id | name   | table 
--------------+----+----------------+------- 
       1 | added friend | tbl_users 
       2 | added comment | tbl_comments 
       3 | added image | tbl_images 
       4 | Updated dp  | NULL 

今、あなたは簡単に

logs_table | id | user | activity_type | object_id | time_stamp 
--------------+----+------+----------------+-----------+------------ 
       1 | 15 | 1    | 5   | 2012-03-10 08:45:05 
       2 | 15 | 2    | 19  | 2012-03-10 08:46:05 
       3 | 15 | 3    | 84  | 2012-03-10 08:47:05 
       4 | 15 | 4    | NULL  | 2012-03-10 08:48:05 

ユーザ#15を次の表を使用して、ログを維持することができるが3月10日に新しい友人ユーザ#5を追加しました。

ユーザー#15は、3月10日に新しいコメント#19を追加しました。

ユーザー#15は、3月10日に新しい画像#84を追加しました。

ユーザ#15は、3月10日に彼の表示画面を変更しました。

UPDATE のobject_idが更新された表示画像like-意味をなさない活動、更新されたプロファイル情報などここでは、おそらく別の列にテキストの差分を保存することができますがあるかもしれません。

+0

ありがとうございました....非常に良いアイデア – user1136875

関連する問題