【发布时间】:2017-10-23 07:00:50
【问题描述】:
我正在尝试使用 Cassandra 构建新闻提要系统,我正在考虑使用扇出方法,其中如果用户发布新帖子,我将在他所有朋友的提要表中写入新记录。表结构如下:
CREATE TABLE users (
user_name TEXT,
first_name TEXT,
last_name TEXT,
profile_pic TEXT,
PRIMARY KEY (user_name)
);
CREATE TABLE user_feed (
user_name TEXT,
posted_time TIMESTAMP,
post_id UUID,
posted_by TEXT, //posted by username
posted_by_profile_pic TEXT,
post_content TEXT,
PRIMARY KEY ((user_name), posted_time)
) WITH CLUSTERING ORDER BY(posted_time desc);
现在,我可以在单个查询中获取特定用户的提要,一切正常。如果发布提要的用户更新了他的个人资料图片怎么办。如何更新 user_feed 表中的数据?
【问题讨论】:
-
您的
users表显示user_id的主键,但user_id没有列? -
对不起,主键是user_name
-
所以你会在给定事件上写入两个表我会说,如果用户更新他们的个人资料图片,那么它也会进入
user_feed表作为“个人资料更新”事件会不是吗? -
不,我必须根据 user_name 和 posted_time 更新用户发布的数据,而我不会一直拥有
标签: cassandra insert-update denormalization