Я использую MVC (C #) и Entity Framework. У меня есть база данных SQL Server с таблицами под названием Профиль, Галерея, ArtWork:
ПРОФИЛЬ:
UserName,
Имя,
и т.д ...
ГАЛЕРЕЯ:
GalleryID,
UserName ,
GalleryName,
КАРТИНА:
ImageGuid,
GalleryID ,
Описание,
Дата публикации,
Просмотры,
Загрузки
У меня есть следующие отношения между таблицами:
Профиль-> Галерея-> ArtWork (внешние ключи, выделенные жирным шрифтом выше)
То, что я хотел бы знать, является наиболее эффективным способом получения следующего для страницы статистики:
Топ-10 скачанных битов художественного произведения месяца
Самый загружаемый дизайнер месяца.
Достаточно просто построить LinQ для вышеперечисленного, но я не хочу попадать в базу данных каждый раз, когда пользователь просматривает страницу статистики. Может быть более 30 000 дизайнеров, каждый из которых имеет более 5000 битов, и я не хочу, чтобы эти результаты вычислялись каждый раз, когда кто-то попадает на страницу статистики. Я хочу получать доступ к базе данных ежедневно только для статистики 1 и ежемесячно для статистики 2 .
Лучше всего я использую представление для каждой статистики в базе данных и выполняю эту функцию постоянно, или лучше установить таймер для ежедневного и ежемесячного обращения к базе данных (если да, то как, пожалуйста?), Или лучше способ.
Заранее спасибо