Короче говоря, я создаю самообучающуюся систему управления баннерами. Пользователи смогут вставлять эти баннеры на свой сайт, когда баннеры будут показываться на основе соотношения продаж / показов.
У меня есть 4 таблицы
Banners
bannerID int
bannerImage varchar....
SmartBanners
smartBannerID int
smartBannerArrayID int
bannerID int
impressionsCount int
visibility tinyint (percents)
SmartBannerArrays
smartBannerArrayID int
userID int
Statistics
bannerID int
saleAmountPerDay decimal...
Каждую ночь мне нужно генерировать новую «видимость» для каждого SmartBanner на основе всего SmartBannerArray, который есть у того же пользователя. Поэтому мне нужно получить сумму показов и продаж для каждого bannerID в SmartBannerArray.
Все, что мне приходит в голову, - это использовать двойной курсор, цикл будет повторяться при мысли, что SmartBannerArrays получит необходимые значения для суммы показов и продаж, а затем внутренний цикл, который будет обращаться к каждому SmartBanner и изменять его процент «видимости» на основе
(продажи / показы) / (sumOfSales / sumOfImpressions) * 100
Надеюсь, вы получите картину ...
Есть ли другой способ создания лучших таблиц или не использовать двойной курсор, чтобы избежать перегрузки сервера?
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Каждая продажа записывается в таблицу статистики, поле обновляется, потому что мне нужна ежедневная сумма за баннер, а не каждую продажу. Пользователь создает BannerArray, выбирает продукты, которые он хотел бы продвигать. Каждый выбранный продукт записывается в таблицу баннеров с соответствующим изображением и другой информацией.
В таблице SmartBanners хранится bannerID, а также таблица статистики, а в таблице BannerArray эта группа баннеров назначается определенному пользователю.