对于我目前参与的项目,我们有一些精选的广告客户'可以添加'优惠'我们的网站显示在其他产品周围,有时与客户/买家正在查看的页面相关。
当前的广告系统是完全随机的,除了尝试定位特定产品外,没有任何偏好。因此,如果supplier1
有9个广告,supplier2
有1个广告,那么supplier1
可以获得更好的价值,因为它们会在10次中显示9次。
我们希望如何更改此系统,以便supplier1
和supplier2
在技术上可以相互获得相同的曝光率,无论他们在系统中拥有多少广告。
你怎么建议我尝试接近这个?我在StackOverflow上看过广告权重系统;然而,他们似乎与群体无关。
答案 0 :(得分:0)
SELECT *
FROM advertisments a
INNER JOIN
(
SELECT * FROM suppliers ORDER BY RAND() LIMIT 1
) s ON a.suplplier_id = s.suplplier_id
ORDER BY RAND()
此查询首先随机选择一个供应商(例如,每个供应商都有相同的机会)(哦,但如果有供应商没有任何广告,您应该过滤掉它们),然后它只获得该用户的广告(即INNER JOIN如何工作)并随机命令