Я пишу веб-приложение, в котором некоторые идентификаторы будут видны пользователям в URL. Приложение предназначено для использования большим количеством пользователей, имеющих каждую учетную запись. У учетной записи могут быть проекты, а у каждого проекта есть задачи.
Теперь я не хочу, чтобы пользователи создавали свой первый проект с идентификатором 24876 (или каким-либо другим сгенерированным идентификатором), а скорее имел бы «красивый» последовательный идентификатор дополнительно к сгенерированному первичному ключу (главным образом потому, что проще манипулировать объектами, имеющими несоставные идентификаторы). Давайте назовем эти последовательные идентификаторы viewIds.
ViewID будут начинаться с 1 для каждого отдельного «родительского» идентификатора (для Проекта это будет Учетная запись). Комбинация (accountId, projectViewId) является уникальной, а также (projectId, taskViewId) и т. Д.
Мой вопрос: как генерировать эти viewIds? Я думал о том, чтобы, возможно, использовать механизм TableGenerator , но может ли он также использоваться для столбцов без идентификатора?
Наиболее важно, однако, что было бы наилучшим способом генерации таких идентификаторов в среде, где несколько серверов приложений используют одну и ту же базу данных (и в идеале, без необходимости их прямой связи друг с другом)? Возможно, уже есть реализация TableGenerator или утилита, которая достигает вышеизложенного?