Расчет ежемесячных отчетов или статистики - MVC Entity Framework LinQ - PullRequest
1 голос
/ 29 марта 2010

Я использую MVC (C #) и Entity Framework. У меня есть база данных SQL Server с таблицами под названием Профиль, Галерея, ArtWork:

ПРОФИЛЬ: UserName, Имя, и т.д ...

ГАЛЕРЕЯ: GalleryID, UserName , GalleryName,

КАРТИНА: ImageGuid, GalleryID , Описание, Дата публикации, Просмотры, Загрузки

У меня есть следующие отношения между таблицами:

Профиль-> Галерея-> ArtWork (внешние ключи, выделенные жирным шрифтом выше)

То, что я хотел бы знать, является наиболее эффективным способом получения следующего для страницы статистики:

  1. Топ-10 скачанных битов художественного произведения месяца

  2. Самый загружаемый дизайнер месяца.

Достаточно просто построить LinQ для вышеперечисленного, но я не хочу попадать в базу данных каждый раз, когда пользователь просматривает страницу статистики. Может быть более 30 000 дизайнеров, каждый из которых имеет более 5000 битов, и я не хочу, чтобы эти результаты вычислялись каждый раз, когда кто-то попадает на страницу статистики. Я хочу получать доступ к базе данных ежедневно только для статистики 1 и ежемесячно для статистики 2 .

Лучше всего я использую представление для каждой статистики в базе данных и выполняю эту функцию постоянно, или лучше установить таймер для ежедневного и ежемесячного обращения к базе данных (если да, то как, пожалуйста?), Или лучше способ.

Заранее спасибо

1 Ответ

3 голосов
/ 29 марта 2010

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

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