-1

私のサイトでは、登録ユーザーと非登録ユーザーの両方が通信できます。未登録ユーザーをデータベースに保存するためのベスト プラクティスを決定しようとしています。私の最初のスキーマは次のとおりです。

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 テーブルがあります。ただし、サイトの技術的に登録されたユーザーではないことを考えると、登録されていないユーザーをユーザーテーブルに保存する必要があるかどうかは明確ではありません。

非登録/外部ユーザーを別のテーブルに保存する必要がありますか? 何か明確にする必要がある場合はお知らせください。

4

1 に答える 1

2

未登録のユーザーを独自のテーブルに分離するかどうかは、おそらくあなただけが答えられる設計上の決定です。おそらく、これらの異なるユーザー タイプがアプリケーション全体でどのように使用されるかによって異なります。ユーザーが登録されていることを示すために、値が 0 または 1 の tinyint フィールドを持つのと同じくらい簡単なことかもしれません。

于 2012-08-07T17:44:23.540 に答える