Создание идентификаторов для уникальности и референциальности URL-адресов

StackOverflow https://stackoverflow.com/questions/1494567

  •  18-09-2019
  •  | 
  •  

Вопрос

Мне нужно создавать объекты и делать их доступными в Интернете.Подобно stackoverflow, у меня есть что-то вроде.

http://stackoverflow.com/users/78374

Однако в моем случае идентификатор создаваемого объекта должен быть уникальным, поэтому я имею в виду UUID, ведущий к URL-адресу типа

http://example.com/users/{8e931066-7d87-4f2b-a3b5-608c4c9a9083}

потому что позже мне придется объединить разные базы данных, а я не хочу иметь проблем со слиянием.

Это общепринятая практика?Каковы альтернативы?

Это было полезно?

Решение

Если это просто вопрос слияния баз данных, присвоение каждой базе данных уникального идентификатора, а затем объединение его с PK с автоинкрементом даст уникальные идентификаторы для каждого объекта, который вы можете использовать, и не будете беспокоиться о проблемах слияния.

Другие советы

В этом нет никакой проблемы.Hotmail делает это.

Если слияние должно быть на 100% бесшовным, то UUID, вероятно, будет лучшим выбором.Если вы хотите создать более удобные для пользователя URL-адреса, вы можете рассмотреть возможность использования уникального «Имени учетной записи», которое может определить пользователь.Это потенциально может создать конфликты при слиянии баз данных, но их можно преодолеть.

Я согласен, что это приемлемая практика, поскольку она сохраняет уникальность идентификатора пользователя при его использовании в нескольких базах данных и приложениях.

Я использую ту же практику в своем блоке приложений для кэширования.Блок приложения кэширования генерирует GUID, когда элемент кэшируется, и приложение использует этот GUID для извлечения элемента из кэша.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top