これは、技術的な問題というよりも、デザイン パターン/ドキュメント デザインの問題です...
ユーザーが自分のサイトで行っているすべての最新の出来事を一覧表示するアクティビティ フィードを自分の Web サイトに表示したい...表示したいアクティビティの一部を次に示します。
- 新しいメディアがアップロードされました (Bob が新しいトラックをアップロードしました)
- プロフィールへのコメント (Paul が Bob のプロフィールにコメントしました)
- メディアへのコメント (スティーブはポールのトラック 'my track name' についてコメントしています)
- ステータスの更新 (Steve は希望するステータスの更新を書き込むことができます)
各アクティビティには、画像、タイトル、説明などのメディアに関する詳細を含めたい新しいメディア アップロード アクティビティなど、独自のデータ セットが必要です。
このアクティビティは主にグローバル フィードとして使用されるため、すべてのユーザーに同じですが、ユーザーがフォローしているユーザー (Twitter など) からのフィード アイテムのみを表示するオプションが必要です。
2つのオプションがあると思います:
1) ユーザーがメディア タイトル名を変更した場合でも、情報が常に最新の状態になるように、インデックスを使用してアドホックにすべてのデータを取得します。
2) NewMediaUploadActivity などのサブドキュメントを含む ActivityFeed ドキュメントを用意します (以下を参照)。
ActivityFeed
- DateTime
- AccountId
- ActivityType
- Activity (this is a polymorphic object)
NewMediaUploadActivity : Activity
- MediaTitle
- MediaDescription
- GenreName
StatusUpdateActivity : Activity
- StatusText
ProfileCommentActivity : Activity
- CommentText
- ProfileAccountId
- ProfileUsername
等...
RavenDB でこれを行うための最良の方法に関する経験や意見があれば、感謝します。現在、SQL Server で構築された私のライブ Web サイトは、わずかに変更されたオプション 2 を使用して必要なことを実行します。
ポール