Если идентификаторы обращены к пользователю, как кажется, то вы хотите, чтобы их было сложно угадать.Используйте встроенный класс UUID , который генерирует случайные идентификаторы для вас и может форматировать их для вас.Извлечение:
UUID idOne = UUID.randomUUID();
UUID idTwo = UUID.randomUUID();
log("UUID One: " + idOne);
log("UUID Two: " + idTwo);
Пример вывода:
UUID One: 067e6162-3b6f-4ae2-a171-2470b63dff00
UUID Two: 54947df8-0e9e-4471-a2f9-9af509fb5889
В приведенной ссылке есть и другие решения.Я думаю, что он достаточно хорошо сравнивает методы, поэтому выберите тот, который наилучшим образом соответствует вашим потребностям.
Еще один интересный метод - тот, который MongoDB использует, но это, возможно, излишне для ваших нужд:
BSID ObjectID - это 12-байтовое значение, состоящее из 4-байтовой метки времени (секунды с начала эпохи), 3-байтового идентификатора компьютера, 2-байтового идентификатора процесса и 3-байтового счетчика.,Обратите внимание, что поля меток времени и счетчика должны храниться с прямым порядком байтов в отличие от остальной части BSON
Если они не были обращены к пользователю, то вы можете просто оставить его в базе данных для автоматического увеличения идентификатора: 1, 2, 3 и т. Д.