Генерация уникального поля MySQL на основе содержимого других полей - PullRequest
0 голосов
/ 16 сентября 2010

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

Мне любопытно, если в MySQL можно генерировать содержимое поля на основе других полей в этой строке, я был бы удобным ярлыком. Например ...

Таблица: Сотрудники

  • EmployeeID
  • 1012 * ПгвЬЫат *
  • Фамилия
  • jobTitle
  • DOB
  • employeeCode

Так что для employeeCode, возможно, я могу использовать MySQL Custom Function (о которой я очень мало знаю) для генерации содержимого поля. возможно, взяв первую букву имени, первую букву имени, длину строки названия должности и последние две цифры DOB? Это чисто пример.

Если это возможно, и любой может указать мне на любой справочный материал, который был бы великолепен, изучал тяжелую документацию MySQL и будет продолжать делать это в настоящее время.

Заранее спасибо!

1 Ответ

2 голосов
/ 16 сентября 2010

Вы можете объединить все поля вместе и выполнить MD5 для полученной строки.

ОБНОВЛЕНИЕ Сотрудники SET md5str = MD5 (CONCAT (field1, field2, field3)) ...

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

Приведенная выше идея не моя: я заметил это вкод maatkit.

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