我知道标题有点复杂,但我想说的是:
我有一张存储不同广告横幅的表格,将显示在网页上。我试图想出一种方法来以最好的方式对这些广告进行排序,以满足网站订阅者的需求。所以,我想到的一个例子是:
该表包含广告名称、目标受众、坐标、流行度和展示激励。假设我只想显示与当前用户登录的目标受众相同的广告。我还想只显示那些人气至少为 5 且与会员的距离 < 80 英里的事件。与会员的距离越短越好,人气越高也越好。我知道我可以通过 Descending Popularity 和 Ascending Distance 对查询结果进行排序。
但是,这对于我正在尝试做的事情并不理想。如果我按照刚才描述的方式进行操作,我认为我可能会遇到距离用户 6 英里的结果出现的问题,但受欢迎程度仅为 5。我不希望这个结果成为第一个排序的查询结果出现。
我认为很酷的是使用归一化加权乘数来对查询结果进行排序,从而得出一个综合分数。比如说,我希望“人气”的权重因子为 0.7,而“距离”的权重因子为 0.3。现在,查询的结果将按最大的综合得分 Desc 排序。我已经知道,要让它适用于距离,我必须将最低距离除以查询结果中的所有距离值,这样实际最低距离的得分为 1。这将是最高得分这部分算法。然后,当然,该 1 和所有其他距离值将乘以 0.3 以使加权乘数生效。反之亦然
我知道这听起来很复杂,但它必须以某种方式成为可能。我之前用求解器在 Excel 电子表格中完成了它,但现在我必须将它翻译成 SQL。非常感谢任何和所有反馈。
我预计的一个问题是从 Ads 表中获取坐标并将其与登录到我的网页的用户的当前位置进行比较。这必须在显示查询结果之前完成,因为查询不是询问坐标而是询问与用户的距离。现在,我想想。这部分不应该太难编码。也许我只需要语法方面的帮助。