私のサイトでは、登録ユーザーと非登録ユーザーの両方が通信できます。未登録ユーザーをデータベースに保存するためのベスト プラクティスを決定しようとしています。私の最初のスキーマは次のとおりです。
Users
------------
user_id
device_id *Unique* (this is for mobile app users)
email *Unique*
phone *Unique*
first_name
last_name
image_url
date_joined
UserNames (Users have custom names for each group potentially)
-------------
name_id
user_id
group_id
first_name
last_name
アプリの仕組みの詳細:
- ユーザーは、登録済みユーザーと未登録ユーザーの両方を含むグループ/リストを登録および作成します
- その後、メッセージはグループ/リストのメンバーに送信されます
- 注: 登録ユーザーは、明示的な承認なしに未登録ユーザーをリストに追加できます。
上記のデザインを選択したのは、メール、電話番号、およびデバイス ID が一意になるためです。ただし、ユーザーはユーザーごとに異なる名前/ニックネームを持っている場合があるため、UserNames テーブルがあります。ただし、サイトの技術的に登録されたユーザーではないことを考えると、登録されていないユーザーをユーザーテーブルに保存する必要があるかどうかは明確ではありません。
非登録/外部ユーザーを別のテーブルに保存する必要がありますか? 何か明確にする必要がある場合はお知らせください。