- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在为我的元素建立一个评分表。
每个项目都有一个分数,因此数据库 (postgres) 可以按分数对项目进行排序并将其返回给用户。
目前产品的总分由以下公式决定:
Total = 0.5 * freshness + 0.25 * popularity + 0.25 * relevance
流程 A、B、C 将运行几个小时并生成 (item_id, score, type),其中类型可以是“新鲜”、“流行”或“相关”。
请注意,我必须保留这些值,因为它们是由不同的过程产生的。
我需要做什么才能执行 SELECT * FROM items JOIN scores ON items.id == scores.item_id ORDER BY <total_score ??> DESC LIMIT 10 OFFSET 0;
编辑
一个明显的答案是让另一个进程生成 type = total
对于所有项目。这行得通,但是很麻烦,因为这些分数中的任何一个的每次更改都需要更新 total 。此外,它几乎可以将我的数据存储量从 25% 增加到 100%。我不认为这是一个最佳解决方案,因为合并它需要相当多的维护工作。
更新
这是我的分数表:
Column | Type | Modifiers | Storage | Description
---------------+-----------------------------+-----------------------------------------------------------+----------+-------------
created_at | timestamp without time zone | | plain |
updated_at | timestamp without time zone | | plain |
id | integer | not null default | plain |
score | double precision | not null | plain |
type | character varying | not null | extended |
最佳答案
这是使用虚拟列执行此操作的另一种很酷的方法,如所述here :
首先,创建一个 View 来聚合每个项目的分数:
CREATE OR REPLACE VIEW vw_scores_rollup AS
SELECT id,
SUM(CASE WHEN type = 'freshness' THEN score ELSE 0 END) AS freshness,
SUM(CASE WHEN type = 'popularity' THEN score ELSE 0 END) AS popularity,
SUM(CASE WHEN type = 'relevance' THEN score ELSE 0 END) AS relevance
FROM scores
GROUP BY id;
接下来,此函数将源表/ View 作为参数。
CREATE OR REPLACE FUNCTION total(vw_scores_rollup) RETURNS numeric AS
$BODY$
SELECT 0.5 * COALESCE($1.freshness, 0) + 0.25 * COALESCE($1.popularity, 0) + 0.25 * COALESCE($1.relevance, 0);
$BODY$
LANGUAGE sql;
访问:
SELECT *, s.total
FROM items i
JOIN vw_scores_rollup s USING (id)
ORDER BY s.total DESC
LIMIT 10 OFFSET 0;
这是一个巧妙的技巧,提供了一种访问总数的直接方法。
关于database - 架构设计 : How do you incorporate "total"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16046592/
我正在使用 Spring Boot 开发一组服务来提供应用程序框架和 REST 功能。我已经成功设置了一组简单的服务(仅使用 HTTP)并且它们运行良好。 现在,我被要求让它们使用 HTTPS。我对“
我的页面 (index.php) 包含一个链接 id="t1" 和一个 div id="container". Users 当我点击链接时,我得到一个内置的外部页面 (utenti.php
我目前正在为我的元素建立一个评分表。 每个项目都有一个分数,因此数据库 (postgres) 可以按分数对项目进行排序并将其返回给用户。 目前产品的总分由以下公式决定: 新鲜度得分(由过程 A 计算)
我的应用程序使用我自己制作的简单函数计算一些字符串(识别应用内购买)的哈希值。此功能与 MD5 - 之类的复杂功能相去甚远。它只是简单的哈希函数,结果乘以大素数 - 整个计算在 Swift 中是 8
我刚刚在 XCode 中完成了我的游戏,关卡完成后节点上的动画是简单的 SKAction 淡出动画。我知道我可以使用 Swift Via Cocoapods 将动画合并到单个 View 应用程序中,但
我目前有一个几乎每 5 分钟就开始一次交易的系统。 我目前正在全神贯注地创建一个执行以下操作的追踪止损: 每个订单号扫描所有未结订单并修改它们,如果它们还没有被修改,像这样: 以 25 点的静态止损开
我正在构建一个 xml 文件,需要包含一段保存在数据库中的 xml(是的,我也希望不是这样)。 // parent element $parent = $dom->createElem
我想在我的 RoR 应用程序上有一个可编辑的电子表格,用户可以在其中输入信息(最重要的是,我希望他们能够粘贴从 excel 复制的数据),然后将数据保存到我的数据库中。 你们能告诉我一些可以帮助我实现
我们正在做大量工作,试图协调大约 1,000 个重复的制造商名称和 1,000,000 个重复的零件号。出现的一件事是如何“匹配”诸如“Limited”与“Ltd.”之类的东西。与“有限公司” 目的是
我正在尝试构建一个聊天应用程序,并且我将 C++ 与 Win32 API 一起用于图形和网络。 我希望能够添加图标(如笑脸、玫瑰等)作为文本行的组成部分(“编辑”和“静态”窗口类型)。 有一个天真的(
I'm very impressed by Trevor Eyre's version of the pop up calendar (answer # 11) and was excited
我想知道 R 的文本挖掘包是否有可能具有以下功能: myCorpus ),control=...) # add docs myCorpus.addDocs(DirSource(),control=..
这可能是其中最简单的问题,但请体谅我。 我正在研究一些关于如何将文本换行到 EditText 中的教程,我认为这些链接会对我有很大帮助。 StackOverFlow Answer 1 StackOve
我正在尝试使用 D3 将缩放功能合并到 Mike Bostock 的旋转地球仪中。只要地球旋转或处于“动画”状态,缩放功能就会发挥作用。然而,我遇到了以下问题: (1) 一旦鼠标按下,当我滚动滚轮时,
我实际上有一些问题与我尝试实现“将事件带到前面”或类似的分区类型面试问题有关。这是实现: http://codepad.org/eO0c6Sbj #include void intSwap ( in
我正在组装一个 Android 应用程序,其中包含以下符号: "ɛ" and "ɔ" 并希望它们在我的应用程序中正确显示。我不确定 android 是否支持这些符号,并且多次搜索也没有证明有用。 如果
在 D3 中: 我使用“年龄”列创建了包含多列数组“年龄”和“性别”的直方图。我的直方图是用“年龄”数据制作的。但我还希望能够将相应的“性别”数据存储在直方图的容器中或存储在容器中。这样,当我将鼠标悬
这是我经常遇到的设计问题,我想找到一些关于这个主题的一般见解。这里提供的代码只是一个例子。 在设计阶段很容易决定您需要一个对象: User ========== Unique ID Login nam
甚至不确定用来问这个问题的正确术语,但我们开始吧。 我有一个集合,我正在使用 MapReduce 来执行聚合任务。我无法使用聚合管道,因为我需要在减少时执行自定义代码。 为了使问题更清晰,对此进行了稍
Ox.Shorest_Path允许我找到一条最大限度地减少旅行时间的路线。然而,在此osmnx示例中计算的总出行时间(https://github.com/gboeing/osmnx-examples
我是一名优秀的程序员,十分优秀!