У меня есть идея.Это может быть плохо по причинам, которые я не знаю, но я был бы очень признателен за ваши отзывы об этом!
Мы использовали идентификаторы сеансов в PHP-проекте.И впервые за 4 года был создан дубликат sessionid.К счастью, я случайно решил просмотреть таблицу «Клиенты», потому что мне было скучно, и я заметил, что в столбце sessionid есть повторяющаяся запись, и я изменил ее и ссылки на нее, прежде чем возникли какие-либо реальные проблемы.
Что привело(или привести?), чтобы я задал себе этот вопрос:
По сути, любой тип идентификатора, будь то идентификатор сеанса, uuid или guid, может в конечном итоге дублироваться, потому что их длина не бесконечна.Тогда я задумался, потому что мы никогда не хотим, чтобы это повторилось.
Я подумал: а что если мы используем комбинацию даты и времени в качестве идентификатора?Это не было бы «случайным», но это решило бы проблему дублирования.Например:
14th of May 2011 04:36:05PM
Если используется в качестве идентификатора, его можно изменить на:
14052011163605
Причина, по которой эта форма идентификатора никогда не будет дублироваться, заключается в том, что никакая дата в сочетании со временемв будущем он всегда будет таким же, как в прошлом или настоящем.
И поскольку в нашем случае эти идентификаторы не предназначены для просмотра кем-либо, нет никаких причин для того, чтобы они были случайными,есть ли?
Мне бы очень хотелось услышать ваши мысли по этому поводу и как вы подходите к таким ситуациям.Какой ваш лучший метод генерации [практически] уникальных идентификаторов?