Cassandra,日期下的用户消息
Cassandra, user messages under a date
仍在尝试了解 Cassandra 我希望用户以下面这种格式查看他们从其他用户收到的日期下的消息列表
CREATE TABLE user_messages (
userid bigint,
messages LIST<FROZEN<message>>,
creation_date text,
PRIMARY KEY (userid, creation_date)
);
.............8/3/2018...................
name: victor
content: ********
name: kelly
content: ******
.............7/3/2018...................
name: Vicky
content: *******
.............6/3/2018...................
name: Vicky
content: *******
如果这个设计是正确的,我该如何处理插入操作?
每次用户想要向用户发送消息时,我需要先检查是否
如果没有插入,则用户 ID 和日期存在,如果是,我更新 table 以添加消息
在消息列表栏内。
每次用户向用户发送消息时,使用如下更新语句
- 用户 2 向用户 1 发送消息
UPDATE user_messages
SET messages = messages + [{sender:2, message:'A'}]
WHERE userid = 1 AND creation_date = '2018-03-08';
- 用户 3 向用户 1 发送消息
UPDATE user_messages
SET messages = messages + [{sender:3, message:'B'}]
WHERE userid = 1 AND creation_date = '2018-03-08';
- 用户1获取其他人发送的所有消息
SELECT * FROM user_messages WHERE userid = 1 AND creation_date = '2018-03-08';
输出:
userid | creation_date | messages
--------+---------------+--------------------------------------------------------
1 | 2018-03-08 | [{sender: 2, message: 'A'}, {sender: 3, message: 'B'}]
仍在尝试了解 Cassandra 我希望用户以下面这种格式查看他们从其他用户收到的日期下的消息列表
CREATE TABLE user_messages (
userid bigint,
messages LIST<FROZEN<message>>,
creation_date text,
PRIMARY KEY (userid, creation_date)
);
.............8/3/2018...................
name: victor
content: ********
name: kelly
content: ******
.............7/3/2018...................
name: Vicky
content: *******
.............6/3/2018...................
name: Vicky
content: *******
如果这个设计是正确的,我该如何处理插入操作?
每次用户想要向用户发送消息时,我需要先检查是否
如果没有插入,则用户 ID 和日期存在,如果是,我更新 table 以添加消息
在消息列表栏内。
每次用户向用户发送消息时,使用如下更新语句
- 用户 2 向用户 1 发送消息
UPDATE user_messages
SET messages = messages + [{sender:2, message:'A'}]
WHERE userid = 1 AND creation_date = '2018-03-08';
- 用户 3 向用户 1 发送消息
UPDATE user_messages
SET messages = messages + [{sender:3, message:'B'}]
WHERE userid = 1 AND creation_date = '2018-03-08';
- 用户1获取其他人发送的所有消息
SELECT * FROM user_messages WHERE userid = 1 AND creation_date = '2018-03-08';
输出:
userid | creation_date | messages
--------+---------------+--------------------------------------------------------
1 | 2018-03-08 | [{sender: 2, message: 'A'}, {sender: 3, message: 'B'}]