データベースにユーザー システムがあり、友達を追加できるようにしたいと考えています。ユーザーは次のことができる必要があります。
- 嘆願書にメッセージを送る
- ユーザをブロックする
- フレンドユーザーにエイリアスを設定します。
だから私はこの表を見ました:
id_friend
id_user1
id_user2
id_user_sender
alias_user1 NULL
alias user2 NULL
status
message NULL
date_sent
date_accepted NULL
各列について説明します。
- id_friend : テーブルの PK。
- id_user1 : users テーブルの FK
- id_user2 : users テーブルの FK
- id_user_sender : 請願の送信者の id_user
- alias_user1 NULL: id_user1 によって id_user2 に設定されたエイリアス (オプション)
- alias user2 NULL: id_user2 によって id_user1 に設定されたエイリアス (オプション)
- status : 0 の場合、友情保留中。友達1人なら。2つの友情がブロックされた場合。
- message NULL: status = 0 の場合、送信者によって設定されたメッセージを含めることができます
- date_sent : 送信者が請願書を送信した日付
- date_accepted NULL: user_requested がフレンドシップを承認した日付。
次に、特定のユーザーのすべての友達を取得するには、次のようにします。
select id_user1, id_user2 from friends where id_user1 = $my_user_id or id_user2 = $my_user_id and status = 1;
次に、私のものと等しい id_users を破棄するので、結果には私の友人であるユーザーのみが含まれます。しかし、エイリアスを取得するには、私にはわかりません。もっとテーブルがありますか?
私はそれを間違って設計していると思います...ヒントやアドバイスはありますか?例を教えてください。
さらに情報が必要な場合はお知らせください。投稿を編集します。