Mysql Как soft-delete в mysql делается?

hell0w0rd

Продвинутый новичок
Нужно было товарищу объяснить, чем postgres лучше mysql, начал естественно с индексов, показал вот такое:
Код:
create unique index users_username on users (lower(username)) where deleted_at is null;
Объяснил, как извернуться в mysql с lower(username), а вот как сделать перерегистрацию не придумал ничего лучше, чем удаленные записи в отдельную таблицу. Только так и можно, получается?
 

hell0w0rd

Продвинутый новичок
MariaDB в целом лучше, чем mysql, я знаю. Но мне интересно, как эту задачу решают без вышеописанных возможностей субд.
 

fixxxer

К.О.
Партнер клуба
MariaDB в целом лучше, чем mysql, я знаю. Но мне интересно, как эту задачу решают без вышеописанных возможностей субд.
Тем же служебным столбцом, только на уровне приложения. Как еще-то

MariaDB в целом лучше, чем mysql, я знаю.
Есть мнение, что mariadb - это и есть mysql, просто название поменялось.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
А существующие накопленные данные пользователя ты будешь подвязывать этому новому nkt ?) Или они должны остаться привязаны к старому? Если второй вариант, как ты планируешь различать двух пользователей nkt в публичной части или администрировании?)
 

hell0w0rd

Продвинутый новичок
Конечно к новому. От старого останется только история.
 

WMix

герр M:)ller
Партнер клуба
либо uniq на нике убрать либо в null сбрасывать.
если хочешь ник сохранить добавь еще колонку "это был"
ну да, нет другой возможности!
 

WMix

герр M:)ller
Партнер клуба
я понимаю вопрос абстрактный и касается любой таблички с уникальными столбцами (нужен другой пример), но акаунт пользователя я удалил бы (в null), это не мешает смотреть его историю, и совершенно не важно какой ник был у пользователя тем более хеш пароля
 

WMix

герр M:)ller
Партнер клуба
важно имя, номер, а не то как логинился пользователь!
 

MiksIr

miksir@home:~$
Вспомним по емейл, который тоже важен и уникальный и закроем спор ;)
 

WMix

герр M:)ller
Партнер клуба
Ерунда, мыло не обязательно уникальная запись. Что мешает отправлять с 2х аккаунтов письма на один и тотже ящик?

То что мыло и ник случайно совпадают это другой вопрос. Ник должен быть уникален иначе дыра в безопасности

Кстати [email protected] и wmix+кучабуквицифр@phpclub.ru один и тотже ящик
 

MiksIr

miksir@home:~$
Мыло = восстановление пароля.
Ник (логин) могут и не помнить (особо если обычный был занят). Ненавижу, когда сайты при восстановлении пароля спрашивают только логин или связку логин+мыло - только идиоты так делают.
Двойная регистрация может мешать в первую очередь пользователю (потеря истории взаимодействия, скидок и прочее).
 

WMix

герр M:)ller
Партнер клуба
я уже ответил на это, вопрос что является ником в системе? если email адрес, то да он уникален.
по сути достаточно спрашивать ник (логин). можно сделать функцию вспомнить логин и указать только мыло ожидая получить список всех ников
 

MiksIr

miksir@home:~$
Ну case-sensitive распространения не получило, к счастью, так что очень можно (и нужно) спокойно забить.

А остальные фишки типа точек, плюсиков... к чему это вообще тут? Уникальность емейла нужна не для того, что бы запретить кому-то повторные регистрации. Она нужна для удобства пользователя в первую очередь. Пользователь привыкает к своему написанию емейла - с точками там или без, и использует его всегда.

Список логинов выслать, угу, чего только не придумает пытливый программистский ум, лишь бы на форуме поспорить. А при регистрации будем спрашивать "такой емейл уже есть, хотите создать еще одну учетную запись"? Фантазия неуёмная.

Ну ладно, пускай логин будет емейлом, что тут придумаете? Наверно, хранить его в двух колонках - email_as_login и email_as_email. Блин, не смешно даже.
 
Сверху