特定のイベントグループへのユーザーサブスクリプションを持つWebアプリを開発しています。例:ユーザーがブロブにコメントを作成し、このブログを購読しているすべてのユーザーのリストにこのイベントが含まれている必要があります。
現在、このデータを保存するためのデータモデルを探しています。
すべてのイベントを1つのテーブルに保存することは、使いやすさの観点からは良い考えのようです。
- オブジェクト(例:コメント参照)
- サブスクライブ可能なオブジェクト(例:ブログ参照)
- イベントを生成したユーザー
- イベントタイプ(更新、作成など)
特定のユーザーのサブスクリプションイベントは、ユーザーサブスクリプションによってイベントをフィルタリングするSQLクエリによって収集される場合があります。
このデータモデルの問題は、サブスクライブ可能なオブジェクトが「継承」を持っている可能性があることです。例:ユーザーは、ブログまたはブログ内の特定の投稿へのサブスクリプションを持っている場合があります。つまり、ブログのサブスクリプションはサブスクリプション後の拡張であり、このデータモデルはこの動作を反映していません。この場合、ブログ用と投稿用の2つのイベントを生成する必要があります。
すべてのイベントを1つのテーブルにまとめるか、それらをいくつかの方法で異なるテーブルに分割することをお勧めしますか?とにかく、イベントテーブルには膨大な量のデータが含まれます。イベントログを整理するためのより良いアイデアはありますか?