2011-12-19 9 views
2

GoogleとStackoverflowで類似の質問を検索したところ、まだ解決策は見つかりませんでした。アクティビティフィード内で類似のアクティビティをグループ化する

私のサイトの主要な部分の1つは、活動フィードです。これは、異なるユーザーがFacebookを好きにしたような行動をすべて示しています。すべてのアクティビティをMySQLテーブルに保存し、PHPでビューをレンダリングします。

*Current situation:* 
- User A uploaded a picture 
- User A uploaded a picture 

*Desired situation:* 
- User A uploaded 2 pictures 

マイアクティビティテーブルは次のようになります:私はちょうどFacebookのようなグループと同様の活動をしたい

はありません、私はstackoverflowの上でこれらの質問を発見した

[Activities] 
    - i_id 
    - a_source 
    - a_type 
    - a_parent 
    - a_parent_id 
    - a_data (json string with meta data, photo filenames for example) 

、それらのどれも提供しませんソリューション:

  1. https://stackoverflow.com/questions/5844655/how-to-group-similar-items-in-activity-feed-similar-to-facebook
  2. User activity feed (ala facebook). How to group similar activities?
  3. How to group similar items in an activity feed

:編集:私はアプローチを探していると、この問題を解決する方法について自分の考えをしたいんだ

cronジョブを実行して、db内のすべての同じ項目をグループ化するのが最善でしょうか?または、これはPHPでレンダリング時間にこれを行う方が良いでしょうか?

私は(リアルタイム)PHPソリューションを好むが、私はどこから始めたらいいか分からない。

私は、将来の読書の出発点が必要です。

+2

あなたは私たちに解決する問題を与えましたか?あるいは、あなたはすでに何を試してみた?任意のコード、アルゴリズム、思考? –

+0

アクティビティテーブルPLZの列のテーブルまたは説明からデータを転記します。 – rMX

+0

問題は何ですか? –

答えて

1

私はアプローチを探しており、これを解決する方法についてのあなたの考えを欲しがっています。

短答? GROUP BY

回答は純粋に前提条件に基づいていますか?下:

は、(任意のデータを見ることなく、再び)現時点では意味をなすために表示される列のデータを想定:あなたはsituationsとテーブルの列とは別に何かを提供していないので、盲目的にコーディング

:で

i_id a_type 
123  photo upload 
123  photo upload 
123  comment 

: が活動

の種類を-beingユーザID a_typeを-being I_IDだけで実行します。

SELECT a.i_id, a.a_type, COUNT(1) AS activity_count 
FROM activities AS a 
WHERE a.i_id = 123 -- or convert this to a parameter through PHP->PDO 
GROUP BY a.i_id, a_type 

上記のSQLは、あなたを与える必要があります。

i_id a_type   activity_count 
123  photo upload 2 

それはデシベルでcronジョブおよびグループすべて同じ項目を実行するのが最適でしょうか?または、これはPHPでレンダリング時間にこれを行う方が良いでしょうか?

集計データが必要ですか? activitiesテーブルには、何百万、何百万、何百万というデータがありますか、それともそれほど多くのデータがあると思いますか?ユーザーあたりのアクティビティの要約に関するレポートが必要ですか?あなたはたいていレポートのためにテーブルを利用しますか?このテーブルを分割してデータをアーカイブするので、将来のチェックやレポート用に集計されたデータのみが必要ですか?

私は(リアルタイム)PHPソリューションを好むが、私はどこから始めたらいいのか分からない。

実際のPHPソリューションについては、Googleで検索することができます。このstackoverflowは、取得する場所ではありません。リンク、たぶん。

私は、将来の読書の出発点が必要です。

LINK: On GROUP BY

LINK: On PDO

関連する問題