我应该如何设计Cassandra表?

时间:2018-06-21 14:38:34

标签: cassandra-3.0

我遇到了以下问题:facebook上存在一些体育团体(例如足球/网球),用户可能处于离线状态或在线状态。此外,每个用户都有一个countryId,并且恰好属于1个运动组。

我希望能够:

  1. 查询所有用户ID及其groupId(给定countryID)
  2. 查询给定countryId和groupId的所有用户ID。

所以基本上我需要一张下表(我将groupId设置为聚簇键,因此我可以查询查询1,因为我必须指定分区键的所有值):

primary key: countryId (partition key), groupId (clustering key)
value column: userId

到目前为止一切都很好,现在我想更改规格:

我希望能够:

  1. 查询所有在线用户ID及其groupId(给定countryID)
  2. 查询给出了countryId和groupId的所有在线用户ID。

每当任何用户更改其在线/离线状态时,我都会收到一条通知。本质上,我需要另一个表,其中:

primary key: driverId (partition key)
value column (boolean): isOnline

我不想将此列添加到我的第一张表中,因为我无法直接从userId中提取countryId和groupId。那么您将如何设计数据库架构?

0 个答案:

没有答案