Да, конечно, есть object_class, object_type, user_id
У самого жирного клиента, примерно по 1.000.000 объектов каждого класса
Задача:
есть таблица video (видео)
есть таблица asset (картинки и все прочее, что не видео и не подлжеит перекодированию)
Клиент отправляет запрос к API, должны вернуться все объекты (класса video и asset) с определенными условиями и отсортированы по определенному полю (дата, имя файла, размер файла и т.д. метаданные)
Для целей пагинации введены еще два параметра limit и offset
Но они вступают в бой только после корректной сортировки результата.
Метаданные раскиданы по разным таблицам.
Запросы сбора метаданных были очень тяжелые, а с учетом, что (по историчесчким причинам) существует две главных таблицы (video и asset), то приходилось общий список запрашивать с UNION, и тут вообще sort by, limit и offset вместе не работают.
Поэтому была придумана денормализованная таблица objects, которая заполняется тригерами из главных таблиц и таблиц метаданных.
как-то так
_____________
[продано копирайтерам]