首页 > 解决方案 > 构建 Cassandra 表以显示 NHL 统计数据的正确方法

问题描述

我一直坚持使用正确的方法来构建我的 Cassandra 表以保存 NHL 球员统计数据。

起初,我有 3 个表,其结构如下:

CREATE TABLE statsBySeason_points (playerId int, playerName text, season text, goals int, assists int, points int PRIMARY KEY(season, points/goals/assists)) WITH CLUSTERING ORDER BY (points/goals/assists DESC);

对于我会使用的查询WHERE season=?

这种方式不允许我在同一个赛季中拥有总分相同的球员,因为主键最终会是相同的。

我还考虑过对其进行结构化,以便每个赛季都有自己的表格,并且使用PRIMARY KEY (playerId, points)这种方式不会按点排序,因为它们都有唯一的 playerId。

基本上我想不出一种方法可以让我只使用该season值来搜索玩家并对其进行排序,而无需在搜索后进行排序。这可能吗?

谢谢

标签: cassandracql

解决方案


这允许搜索一个赛季,它可以按积分、进球、助攻进行排序

PRIMARY KEY ((season), points, goals, assists, playerId)


推荐阅读