Возникла ситуация:
нужно создавать максимально короткие id к данным. Причем делать это нужно как можно более экономично (в плане ресурсов).
id имеет малый период жизни, а количество одновременно живущих id может достигать 1000-3000
Как я думаю это сделать:
Решил использовать base36 в качестве генерации уникальных id.
Значения id будет от 1 до 4-х символов (то есть короткие!), при этом диапазон значений весьма неплохой - 1679615 !
// возвращает уникальный короткий ID в заданном числовом диапазоне
function getRandomID(min, max) {
var int = Math.floor(Math.random() * (max - min + 1)) + min;
return int.toString(36);
}
var id = getRandomID(0, 1679615);
alert(id);
Конечно данный id может оказаться уже задействованным (среди тех активных 1000-3000 айдишников), поэтому нужно проверять перед использованием! Но такая вероятность ничтожна в случае с 3000 id - вероятность 1 на 559
А как бы вы это делали?