Создайте нового пользователя с электронной почтой как мягко удаленного пользователя - PullRequest
1 голос
/ 19 июля 2011

Я использую ActsAsParanoid для мягкого удаления пользователей. После удаления (мягкого) пользователя мой клиент хочет создать пользователя с тем же идентификатором электронной почты. Но он генерирует уникальную ошибку поля, так как столбец электронной почты уникален. Так что мой вопрос, можем ли мы установить уникальность для столбца email только в том случае, если столбец удален_ пусто.

Пожалуйста, ответьте, если вы не поняли мой вопрос.

1 Ответ

2 голосов
/ 19 июля 2011

Полагаю, вы можете изменить ограничение уникальности вашей таблицы users на:

UNIQUE (email, deletion_date)

Это будет эффективно:

  • Для стандартных (не удаленных) пользователей гарантируйте, что у них есть уникальные адреса электронной почты, поскольку предположительно все даты их удаления будут NULL.
  • Для удаленных пользователей не дайте никаких гарантий в отношении адресов электронной почты, поскольку все они имеют уникальные даты удаления.
  • Для новых пользователей разрешите им использовать адрес электронной почты, который есть у удаленного пользователя, поскольку у нового пользователя будет дата удаления NULL, а у удаленного пользователя там будет значение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...