ユーザーアイコン

mizuko

3か月前

0
0

論理削除で退会したユーザーが再度登録できる様にするためのTips

SQL

前提

論理削除でユーザーを無効にする。 再度登録した際はデータの引き継ぎなどは行わず、新規ユーザーとして登録する。

設計

remove_keyというカラムを設け、user_idとremove_key及びemailとremove_keyでUNIQUE制約をかける

CREATE TABLE "users" ( "id" BIGSERIAL NOT NULL, "user_id" varchar(20), "email" varchar(100), "name" varchar(100), "remove_key" BIGINT DEFAULT 0, "created_at" TIMESTAMPTZ NOT NULL DEFAULT current_timestamp, "updated_at" TIMESTAMPTZ NOT NULL DEFAULT current_timestamp, "deleted_at" TIMESTAMPTZ, PRIMARY KEY ("id"), CONSTRAINT "email_remove_key" UNIQUE ("email", "remove_key"), CONSTRAINT "user_id_remove_key" UNIQUE ("user_id", "remove_key") );

削除するタイミングで、idをremove_keyへ更新してから削除処理を行う。 これにより、重複するemailでも問題なく再度アカウントを作成することができる。