所以,我碰到这个问题,我只是不知道该怎么做,所以说我保持这些用户操作:Cassandra的数据模型改良效果
- 喜欢
- 评论
- 股份
- 上传
等等,不胜枚举各地20
行动,现在我想出了最好的策略是建立一个单一的CF让我们将其称为user_actions
,然后使用复合行(我认为这就是它们的调用方式)。
所以行将由user_id:action
组成,现在我想有些人会问为什么不把所有的用户操作存储在一行中?那么这里是我最大的问题,因为我希望用户有一个选择选项,当用户想要查看他的朋友或他自己过去做过什么时,他想看到选择。
所以说用户想看看他的朋友喜欢什么,我所需要做的就是让所有那些喜欢的那一排,简单的权利?
但是如果用户想要看everything
(这是默认选项),那么我需要制作~20
查询,那么我想这对小流量来说可以,但是如果我有100k读取每秒意味着100k * 20,这听起来很可怕...
但我只是不能看到任何其他方式,因为如果我将所有内容存储在一行中我将如何查询个别操作时,卡桑德拉doesn支持WHERE
?
顺便说一句我使用的是php
和phpcassa
lybrary。
您可以通过名称范围(例如:BA ...到BZ ...)查询列并获取行片。 – lstern
另外,您可以在一个请求中获得多个密钥。 – lstern
@lstern但不是同一件事?我的意思是我仍然需要为每个动作制作20片 – Linas