Применить функцию UUID к полю базы данных из PHP - PullRequest
0 голосов
/ 28 октября 2010

У меня есть это приложение CodeIgniter и MySQL.

У меня есть таблица базы данных, где одно поле должно быть уникальным.Когда я «удаляю» запись из таблицы, я не хочу действительно удалять ее из таблицы, я просто хочу освободить значение уникального поля, чтобы его можно было использовать для будущей новой записи без конфликтов, и оставить еготам.

Сначала я подумал, что применение некоторой функции UUID к полю было бы хорошим решением.Может кто-нибудь указать мне, как я могу применить функцию UUID к полю из кода PHP?Я гуглил об этом и ничего не мог придумать, документы CodeIgniter тоже.

Некоторые другие проблемы также приветствуются и ценятся.

Спасибо заранее!

1 Ответ

1 голос
/ 28 октября 2010

Если я правильно понимаю вашу цель, вы можете сделать это с помощью одной строки SQL-выражения.

update users set username = CONCAT(UUID(), username) where username = "username_to_be_deleted"

Это довольно хорошая попытка сохранить уникальное ограничение, если только ваш злой пользователь не выберет имя пользователя в формате уникального идентификатора + некоторую строку, и оно случайно совпадет. Впрочем, вряд ли.

Дополнительное преимущество: поскольку UUID имеет фиксированный формат, вы всегда можете извлечь исходное имя пользователя из закодированного значения.

И, конечно, гораздо лучший подход, если вы не добавляете уникальное ограничение в поле, подобном этому, а скорее применяете уникальность программно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...