【发布时间】:2016-08-30 02:39:02
【问题描述】:
我是 Cassandra 的新手,正在尝试为消息传递系统构建数据模型。我找到了几个解决方案,但没有一个完全符合我的要求。有两个主要要求:
- 从所有其他用户获取特定用户的最后消息列表,按时间排序。
- 获取一对一消息历史记录的消息列表,也按时间排序。
我想到了这样的事情,
CREATE TABLE chat (
to_user text,
from_user_text,
time text,
msg text,
PRIMARY KEY((to_user,from_user),time)
) WITH CLUSTERING ORDER BY (time DESC);
但是这个设计有一些问题,比如我无法满足第一个要求,因为这个设计也需要传递 from_user。当 (to_user,from_user) 对的数量增加时,这也会降低效率。
【问题讨论】:
标签: cassandra messagebox datamodel