Twitter や Instagram などのように、ユーザーが他のユーザーをフォローできるようにしたいと考えています。これには、次のようなテーブル構造を含める必要があると考えています。
ユーザー ID、パスワード、電子メール、fname、lname を持つユーザー
userid1(INT)、followstatus(TINYINT)、usererid2(INT)のフォロワー
user1 が user2 をフォローすることを決定すると、新しい行が作成されます。user1 が user2 をフォローしないことにした場合、後でフォロー状態をオフにすることができます。user2 が user1 をフォローしている場合、別のエントリがあります。
このテーブルへのクエリを使用して、user1 が誰をフォローしているかを知ることができます。また、count クエリを使用して、何人の人がフォローしているかをユーザーに伝えます。次に、この関係を条件として、user2 のアクション (followee) に関する情報を user1 (follower) に出力します。
それはベストプラクティスですか?それとも、それ以上のものがありますか? 必要なフィールドやテーブルは他にありますか?
注:ユーザーには別のテーブルがありますが、必ずしもユーザーではありませんが、フォロワーのステータスは別のテーブルにある必要があると思います。