TrueDevs
@TrueDevs

Насколько уникальным получится id, сгенерированный из md5 хеша строки?

Теоретический вопрос: нужно генерировать уникальный id, на основе title новости. Не долго думая, запили такой велосипед, но задался вопросом, при миллионах статей с уникальными title, останется ли так же уникальным id сгенерированный подобным способом?

$string = md5('Some unique string');
echo $string.'<br>';
$string= preg_replace('~[^0-9]+~','',$string); 
echo (int) $string.'<br>'; 

//result
//eb939f7a375f5520b090e49396e8393e
//9223372036854775807


так не получается получить уникальный id, какие варианты есть? нужно для того, что бы перед добавлением статьи в базу, проверить нет ли такого-же title, по id быстро искать, по like %title% долго...
  • Вопрос задан
  • 618 просмотров
Решения вопроса 1
@ynblpb_spb
дятел php
ИМХО, делайте так как написали
В базе отдельное поле varchar 32 для хэша, туда MD5 от title и на это поле вешаете индекс в БД
Поиск будет очень быстрый
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
Случайно коллизию поймать шанс на миллионах вряд ли есть. (https://stackoverflow.com/a/288519)
Если не вырезать ничего из хеша конечно, зачем вы буквы-то удаляете?
ID != только цифры

В целом смысла никакого в затее, тогда уж uniqid() брать или mt_rand().
Ответ написан
@sidni
Php Developer
Может оффтоп есть же специальные библиотеки для получения уникального идентификатора по типу
https://github.com/ramsey/uuid
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы