自分のサイトのユーザーが自分のサイトの他のユーザーやトピックをフォローできるようにしたいのですが、両方を組み合わせる方法がわかりません。クォーラを使用して、ユーザー、トピック、質問、編集などをフォローする方法を考えてください。
ユーザーをフォローするために、私はそれを非常にシンプルに保つつもりでした:
user_id: int
followers_id: int
しかし、これはユーザーにのみ有効なので、次の方法について考えました。
user_id: int
date: Date
following: int(could be topic_id or user_id)
following_type: text(topic or user)
トピックまたはユーザーテーブルのいずれかをクエリするために型を解析する必要があるため、これがこれを行うための最良の方法であるかどうかは少しわかりません(ただし、すべてのデータが1つのテーブルにあるため、すべてをすばやく取得できるという利点があります1つのクエリで次の情報)。
これが最善の方法ですか、それともこれを達成するためのより良い(より効率的でスケーラブルななど)方法がありますか?各フォロワータイプを異なるテーブルに分割する必要がありますか?どんなデザインを考えたらいいのかよくわかりません。