我已经阅读了与此相关的一些问题,但它们并不能准确描述我的情况。我有一个表,该表的一列代表该项目的观看次数;假设是1000、20。我想根据观看次数给它一个排名。因此,当我对结果进行排序时,我想按等级对它们进行排序,而不是因为数学过多而将某项放置在另一项之上只是因为它的视图比另一视图多。
item
id view view_rank (is the view_rank here a bad practice? Why?)
1 1000 3
我想这样做,因为如果不这样做,我将不得不使用编写原始sql而不是使用我的ORM。还可以考虑检索100.000。对100.000使用等级函数可能很重要。
我不确定我是否完全理解您的问题-如果您不打算按“数学”方式对视图进行排序,您还将如何排序?
但是要回答您的问题-如果排名可以从表格中的数据中得出,例如视图的数量,存储该排名将导致数据重复,这通常是个坏主意。特别是因为添加新记录或更新记录上的视图数可能意味着您必须重新计算表中的所有排名值。
[如果您想将记录分组在一起-例如0-100、101-500、501-10000-您可以使用this answer来查看如何在原始SQL中执行;您的RDBMS可能也具有内置功能。