Webアプリを開発する上で退会ユーザーの取り扱いについて、
データベースの構成としてどのようにするかで悩んでおります。
なお、データベースはMySQLです。
** テーブル **
- user(全ユーザーテーブル)
- deleted_user(退会ユーザーテーブル)
** 仕様 **
- ユーザー登録はメールアドレス(一意のID)とパスワードで管理
-> 同じメールアドレスでは登録できない
- ユーザーが退会した場合はデータベースでis_deletedカラムで退会フラグを立てて管理
- ユーザーが退会した場合はメールアドレスのカラムを空にして、再度登録できるようにする
- ユーザーが退会した場合はdeleted_userテーブルに登録
-> その時、Userテーブルの外部キーとしてuser_idを格納する
-> メールアドレスもdeleted_userに格納
- 退会ユーザーが再度登録するときは新規ユーザーとみなします(以前の情報は引き継がれない)
- 退会ユーザーテーブルの役割としては、アクティブユーザーと退会ユーザーの切り分けをしやすくするためです。
また、退会理由と要望を記述してもらったときに別テーブルの方がnullカラムが存在しなく良いと判断した為です。
###問題点
メールアドレスが2つのテーブルに存在することになるので情報管理が少々ややこしくなるのではないかと危惧しています。
###聞きたいこと
ユーザー情報をメールアドレスの一意管理の場合はこのようなテーブル構成以外に
どのような構成が適切でしょうか?
アドバイスをいただければと存じます。
宜しく御願い致します。
回答3件
あなたの回答
tips
プレビュー