我知道标题有点复杂,但我得到的是这样的:使用权重因子进行多列排序查询结果
我有一个不同的广告横幅表存储,将显示在网页上。我试图想出一种方法来以最好的方式对这些广告进行排序,以满足网站用户的需求。所以,我想到的一个例子是:
该表具有广告名称,目标受众,坐标,人气和激励显示。假设我只想显示与当前登录用户所属的目标受众相同的广告。我也只想显示至少有5人气和距离会员< 80英里的事件。与会员较低的距离是好的,并且具有较高的人气也很好。我知道我可以按降序人气和升序距离对查询结果进行排序。
但是,这不会是我想要做的。如果按照刚刚描述的方式进行操作,我认为我可能会遇到距离用户6英里的结果,但受欢迎程度仅为5的问题。我不希望此结果成为第一个排序的查询结果出现。
我认为很酷的方法是使用归一化加权乘数来对问题结果进行排序。比方说,我希望人气获得0.7的权重因子,距离的权重因子为0.3。现在,查询的结果将按最大综合评分Desc排序。我已经知道,为了适应距离,我必须将查询结果中的所有距离值除以最小距离,以便实际最低距离得分为1.这将是这部分算法。那么,当然,1和所有其他距离值将乘以0.3以使加权乘数生效。反之亦然人气
我知道这听起来很复杂,但它必须以某种方式。我之前在解决方案中使用过Excel电子表格,但现在我必须将其转换为SQL。任何和所有的反馈是非常感谢。
我期望的问题是从广告表中获取坐标,并将其与登录到我的网页上的用户的当前位置进行比较。这必须在显示查询结果之前完成,因为查询不是询问坐标,而是询问与用户的距离。现在,我想到了它。这部分不应太难编码。也许我只是需要语法帮助。
你是如何得到用户的距离?它是储值吗? – 2013-03-14 08:33:05
@ sas1ni69不,我查看广告描述的坐标,然后查看用户当前位置的坐标。那么它只是简单的距离公式。 – Connor 2013-03-14 08:40:08