アクティビティ ストリーム データを保持するテーブルのキーをセットアップする最善の方法は何かと考えています。アクティビティの種類ごとに異なる属性があります (共通のものもあります)。以下は、いくつかのアイテムで構成されるものの例です。
フォロー アクティビティ:
- タイプ
- ユーザーID
- タイムスタンプ
- follower_user_id
- followee_user_id
コメント活動
- タイプ
- ユーザーID
- タイムスタンプ
- comment_id
- commenter_user_id
- commented_user_id
ストリームを表示するために、user_id に対してクエリを実行し、タイムスタンプで並べ替えます。他のタイプのクエリもあります。たとえば、user_id AND type や、comment_id、follower_user_id などをクエリする必要がある場合があります。
だから私の質問は:
- 主キーは、user_id とタイムスタンプを使用したハッシュ キーと範囲キーにする必要がありますか?
- 他のすべてのアイテム (comment_id など) にセカンダリ インデックスを作成する必要がありますか? または、インデックスがなくても結果は十分に速く返されますか? セカンダリ インデックスは 5 つに制限されており、実行する必要のあるすべての種類のクエリには不十分です。