2011-07-19 7 views
1

ソフト削除ユーザーにActsAsParanoidを使用しています。ユーザーを削除(ソフト)した後、クライアントは同じ電子メールIDを持つユーザーを作成したいと考えています。私の質問は、email列の一意性を、deleted_at列がnullの場合にのみ設定できます。ソフト削除されたユーザーとして電子メールで新規ユーザーを作成する

私の質問を理解できない場合は、返信してください。

答えて

3

私はあなたがあることをごusersテーブルの一意性制約を変更することができたとします

UNIQUE (email, deletion_date) 

これでしょう効果:標準(非削除)ユーザーの場合

  • 、彼らは一意の電子メールを持っている保証その削除日はおそらくすべてNULLであるため、
  • 削除されたユーザーの場合、すべてが一意の削除日を持つため、電子メールアドレスについては一切保証しません。
  • 新しいユーザーの場合、削除されたユーザーのメールアドレスを使用することができます。新しいユーザーの削除日はNULLであり、削除されたユーザーの値はそこにあります。
+0

一意性制約チェックでNULL!= NULLが指定されているため、残念ながら、これはMySQLでは機能しません –

関連する問題