Мое веб-приложение имеет функцию загрузки мультимедиа, которая связывает каждый загруженный элемент мультимедиа с набором элементов мультимедиа (для простоты мы будем называть каждую группу элементов мультимедиа как альбом, хотя охватывающая сущность для элементов мультимедиа не такая простая структура). Каждый из этих «альбомов» может иметь настраиваемые параметры просмотра, которые указывают, кто может просматривать альбом (а-ля Facebook).
Я пытаюсь сгенерировать количество медиа-элементов, загруженных пользователем для отображения на главной странице пользователя. Проблема в том, что я не могу придумать способ сделать это, не просматривая данные всех " "альбомы" (по сути, он выполняет тот же объем работы, который требуется для сбора просматриваемых альбомов).
Если бы все альбомы имели одинаковые настройки видимости, я мог бы просто вести подсчет элементов мультимедиа и манипулировать им при загрузке и удалении. Поскольку все они потенциально могут иметь разные настройки видимости, я должен проверить разрешение на просмотр для каждого «альбома», чтобы убедиться, что его элементы мультимедиа могут быть включены в счетчик, который будет отображаться для него.
Рассмотрим Facebook:
Посмотрев профиль пользователя, вы увидите количество фотографий, загруженных пользователем. Предположительно, это количество всех фотографий, которые вам разрешено просматривать, а не общее количество фотографий пользователя. Если это правда, было бы неэффективно просматривать все строки базы данных альбомов (и строки в других таблицах, например, содержащие «списки» разрешенных средств просмотра) только для генерации счетчика; у вас все еще есть еще один щелчок, чтобы перейти на страницу, где вы можете просмотреть фотографии (где процесс подтверждения разрешения должен быть снова завершен)!
Есть ли что-то, чего я пропускаю, или сейчас сайты работают с такими вещами? Возможно, процесс завершается в первый раз, и просматриваемые альбомы кэшируются для последующего использования?