如何查询此Cassandra数据模型设计

如何查询此Cassandra数据模型设计,cassandra,phpcassa,datamodel,Cassandra,Phpcassa,Datamodel,我在用cassandra设计数据模型时遇到了一个疑问 i、 e.我已经创建了这个CF 页面跟随者{“页面id”:{“用户id”:“时间”} 我想对上述CF.提出两个问题。 1)获取所有用户ID(作为一个数组,使用phpcassa的multiget功能)查看特定页面。 2)检查特定用户是否在关注特定页面。 i、 e.用户id=1111的用户是否正在跟随id=100的页面 那么,我如何基于该CF进行这些查询呢 注意:我不想为这种情况创建新的CF。因为对于此用户操作(即用户单击页面上的跟随按钮),

我在用cassandra设计数据模型时遇到了一个疑问

i、 e.我已经创建了这个CF

页面跟随者{“页面id”:{“用户id”:“时间”}

我想对上述CF.提出两个问题。

1)获取所有用户ID
(作为一个数组,使用phpcassamultiget功能)查看特定页面。
2)检查特定用户是否在关注特定页面。
i、 e.用户id=1111的用户是否正在跟随id=100的页面


那么,我如何基于该CF进行这些查询呢

注意:我不想为这种情况创建新的CF。因为对于此用户操作(即用户单击页面上的跟随按钮),必须在3个CF中插入数据,如果我为此创建了另一个CF,则必须在总共4个CF中插入数据。这可能会导致性能问题。

如果您在phpcassa中给出示例,那么这将是非常好的…


另一个疑问是:-
因为我已经为我的大学社交网站创建了卡桑德拉数据模型(即页面关注者、用户关注者、通知、警报等)
对于每个用户操作,我必须将数据插入2个或3个或更多CFs中,所以这是否是性能问题的原因???这是一个好的设计吗??
请帮帮我…


提前感谢

一般来说,在Cassandra中进行数据建模时,您首先查看查询,然后构建适合该查询的数据模型

对于您的情况,您可以执行以下操作(我没有phpcassa的经验,因此我只能给您提供方法,您必须了解phpcassa位)

1) 执行起始列为“”和结束列为“”的切片查询,并将范围设置为非常大的值。这将返回所有列

2) 只需为rowkey=100和userid=1111创建一个get列。如果该值不为null,则用户跟随页面

Cassandra针对写操作进行了高度优化。使用Cassandra建模数据的推荐方法是以非规范化方式写入,甚至写入多个CFs。给两三个家庭写信不应该是个问题。您可以始终使写入异步,以获得更好的性能


编辑:是phpcassa的好地方

PageFollowers是一个CF(专栏系列)。谢谢Mohit,我得到了解决方案,(我知道这个,这就是为什么我创建了这样的CF…)但我没有得到。请告诉我如何获得查询的解决方案。。。提前感谢…阅读cassandra api上的切片查询,在这里()使用以下命令:
$Slice=new columnsice('5','7',columnsice::MAX_COUNT,false)$列\u族->获取('行\u键',$slice)此外,如果这对您有帮助,请接受我的解决方案。见()