@Milliard

Как производится поиск в базе данных на основе get параметров url?

Некоторые сервисы: Youtube, Яндекс.Диск, другие облачные хранилища и т.п. добавляют в url параметр, идентифицирующий конкретный ролик или файл, и состоящий из набора букв и цифр. Что-то типа 9bZkp7q19f0. Интересует как производится поиск по базе данных, который сопоставляет эти параметры идентификатору файла (int32 или int64). Логично, что перебирать всю базу смысла нет. Я предположил, что существует какая-то хеш-функция, которая взаимно однозначно переводит этот параметр в число и обратно, но ничего не нагуглил. Существуют ли такие хеш-функции? И если нет, то как производится сопоставление?
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
Что-то типа 9bZkp7q19f0
Это и есть суррогатный ключ. Он может вычисляться любым способом (сразу уникальным или с проверкой). Счётчик (целое число) наиболее простая функция ID+1.

Например, musicbrainz.org/artist/d5c51c36-ac67-4727-91ed-ee9f0df81a2d, это — UUID. В MS SQL функция NEWID() возвращает uniqueidentifier, тип используемый, как первичный ключ.

Я, например, иногда использую функцию (вместо счётчика), которая заполняет пробелы возникающие при удалении записей.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
как производится поиск по базе данных, который сопоставляет эти параметры идентификатору файла (int32 или int64)
Это сам идентификатор пользовательской записи/поста. Никаких преобразований с этим параметром до извлечения данных из базы по нему - не делается.

PS: создаётся этот параметр в момент создания (первого сохранения) поста/записи, генерация ключа - может идти через хранимую процедуру в базе данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы