Как я могу генерировать счетчики для элементов с разными разрешениями на просмотр в моей базе данных, не будучи неэффективным? - PullRequest
0 голосов
/ 16 декабря 2011

Мое веб-приложение имеет функцию загрузки мультимедиа, которая связывает каждый загруженный элемент мультимедиа с набором элементов мультимедиа (для простоты мы будем называть каждую группу элементов мультимедиа как альбом, хотя охватывающая сущность для элементов мультимедиа не такая простая структура). Каждый из этих «альбомов» может иметь настраиваемые параметры просмотра, которые указывают, кто может просматривать альбом (а-ля Facebook).

Я пытаюсь сгенерировать количество медиа-элементов, загруженных пользователем для отображения на главной странице пользователя. Проблема в том, что я не могу придумать способ сделать это, не просматривая данные всех " "альбомы" (по сути, он выполняет тот же объем работы, который требуется для сбора просматриваемых альбомов).

Если бы все альбомы имели одинаковые настройки видимости, я мог бы просто вести подсчет элементов мультимедиа и манипулировать им при загрузке и удалении. Поскольку все они потенциально могут иметь разные настройки видимости, я должен проверить разрешение на просмотр для каждого «альбома», чтобы убедиться, что его элементы мультимедиа могут быть включены в счетчик, который будет отображаться для него.

Рассмотрим Facebook:

Посмотрев профиль пользователя, вы увидите количество фотографий, загруженных пользователем. Предположительно, это количество всех фотографий, которые вам разрешено просматривать, а не общее количество фотографий пользователя. Если это правда, было бы неэффективно просматривать все строки базы данных альбомов (и строки в других таблицах, например, содержащие «списки» разрешенных средств просмотра) только для генерации счетчика; у вас все еще есть еще один щелчок, чтобы перейти на страницу, где вы можете просмотреть фотографии (где процесс подтверждения разрешения должен быть снова завершен)!

Есть ли что-то, чего я пропускаю, или сейчас сайты работают с такими вещами? Возможно, процесс завершается в первый раз, и просматриваемые альбомы кэшируются для последующего использования?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2011

После кратковременной блокировки друга от просмотра некоторых моих фотографий, а затем просмотра профиля под его именем (с помощью параметра «Просмотреть как») в верхнем правом углу создается впечатление, что количество фотографий не меняется. Другими словами, количество - это значение всех фотографий, загруженных пользователем, независимо от настроек конфиденциальности на каждой.

Буду признателен, если кто-нибудь сможет это подтвердить.

0 голосов
/ 16 декабря 2011

Я не знаю насчет Facebook, но ... Если вы не делаете что-то чрезвычайно сложное с разрешениями, если у вас хорошо нормализованная база данных и правильно настроены индексы, объединение не должно быть таким медленным.Можете ли вы показать соответствующие схемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...