【问题标题】:Cassandra - data modelling help neededCassandra - 需要数据建模帮助
【发布时间】:2018-10-14 04:26:00
【问题描述】:

我尝试设计社交网络(某种)应用程序。 我有一个用户,他有追随者,还有一个时间线。 我的时间表如下所示:

user_id
second_party_user_id
created
other_fields

因此,当“second_party_user”发布任何新内容时,我会吸引所有关注他的人,并将其插入到他们的时间轴 second_party_user 的帖子中。 当用户来查看时间线时,我通过 user_id 向他的时间线做了一个简单的请求。 问题是我需要订购物品。如果我想按 created 排序,我需要把它作为第二个聚类列,而不是第三个。 同时,如果我把它作为第二个聚类列,即:

user_id
created
second_party_user_id
other_fields

那么当一个用户取消关注second_party_user时我会遇到问题,即我如何删除(user_id,second_party_user_id)。

任何帮助将不胜感激! 提前谢谢你。

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    要处理这些功能,您可以使用两个表,一个用于排序时间线,另一个用于处理两个表中的消除。

    //order timeline by created date
    user_id(pk) 
    created(ck)
    second_party_user_id 
    other_fields
    
    //with this table you can get created to delete in the first one and 
    //delete this table with (user_id,second_party_user_id)
    user_id(ck) 
    second_party_user_id (ck)
    created
    other_fields
    

    【讨论】:

    • 感谢您的回答。虽然,我不完全确定我跟随你。如何获取仅知道他的 user_id 的用户的所有时间线项目? (好的,可能带有二级索引或 sasi 索引)。但是如何从用户的时间轴中删除 second_user 的所有项目?我只知道两件事:user_id 和 second_party_user_id。二级索引或sasi索引不支持删除..
    • 我理解错了这个问题,我编辑了我的答案以使其适应您的功能
    • 好的,谢谢。不是最好的,但绝对是可能的。
    猜你喜欢
    • 2022-07-04
    • 2015-11-30
    • 1970-01-01
    • 2020-02-16
    • 2015-11-10
    • 2011-10-29
    • 1970-01-01
    • 2013-12-08
    • 2014-02-14
    相关资源
    最近更新 更多