ソーシャルネットワークサイトの場合、招待者と招待者のIDと、招待のステータス(承認済みかどうか)を示すテーブルがあります。私が読んだことによると、これは友達のテーブルのベストプラクティスのようです。
テーブルの友達
id | inviterid |inviteeid |status
ただし、特定のユーザーIDについて、名前を含むその人のすべての「友達」を表示したいと思います。簡単なクエリで関係のレコードのリストを取得できます
Select * from friends WHERE inviterid = '33' or inviteeid = '33'"
ただし、友達は招待者または招待者のいずれかである可能性があるため、これは簡単に友達のリストに変換されません。そのため、誰が誰を招待したかによってフィールドが異なります。
友達のテーブルのためのより良いテーブルデザインはありますか?または、招待者と招待者のどちらかになり得る友人を選択するSQL構文はありますか。最終的には、ユーザー名を持つ別のテーブルに結合する必要があります。