Я хочу создать сокращение URL для конкретного варианта использования и типа конечного пользователя, на который я нацелился. Я решил, что я хочу, чтобы URL-адреса сохранялись внутренне в соответствии с автоматически увеличивающимся целым ключом. Тем не менее, также требуется, чтобы ключ представлялся пользователям в URL-адресе в виде шестизначной базы 26 (a-z * 6), и невозможно предсказать, что основной ключ url 26 основан на инкрементирующем целочисленном ключе. Другими словами, первый ключ url не должен быть aaaaaa, тогда в следующий раз, когда кто-то создаст url, он не должен быть aaaaab и т.д., И никакой цикл не генерирует случайный случай и не ловят рыбу в базу данных, чтобы убедиться, что он уже существует повторно.
Вторая часть требований (urls в базе 26, которую трудно предсказать аутсайдеру) является более интересной. В идеале я хотел бы, чтобы какое-то алгоритмическое 1-1 отображение всех чисел в диапазоне 26 ^ 6 на другое число в том же диапазоне, что я могу только тогда напечатать в базе 26, и что я могу отменить алгоритмически и не выполнять нужно хранить в отдельной таблице, когда я хочу посмотреть URL-адрес. Как я могу это сделать?