我正在尝试创建一个网站,用户可以在其中写文本,其他用户可以对帖子发表评论,甚至其他用户也可以对评论进行回复。 Cassandra的新手,请帮助创建数据模型。
下面的现有数据模型
CREATE TABLE users (
user_id uuid,
first_name text,
last_name text,
email text,
created_date timestamp,
PRIMARY KEY (userid)
);
CREATE TABLE user_credentials (
email text,
password text,
userid uuid,
PRIMARY KEY (email)
);
CREATE TABLE user_posts (
user_id uuid,
post_id timeuuid,
content text,
PRIMARY KEY (user_id, post_id) )
WITH CLUSTERING ORDER BY (post_id DESC);
Create TABLE comment_by_post (
post_id timeuuid,
user_id uuid,
comment_date timestamp,
context text ,
primary key (post_id,user_id,comment_date))
WITH CLUSTERING ORDER BY (comment_date);
Create Table comment_by_user (
post_id timeuuid ,
user_id uuid,
comment_date timestamp ,
content text,
primary key (user_id,post_id,comment_date))
WITH CLUSTERING ORDER BY (comment_date);
答案 0 :(得分:0)
我是mongodb开发人员,而不是cassandraDB开发人员,但我可以为您提供一些数据模型,我将按照json语法进行建模:{attr:value}
评论/回复有两种方法:
embade在评论集合(cassandra中的表)中答复如下:
{
commentID : 1,
userID : 12,
postID : 15,
text : "some comment",
/*other fields*/
replies : [
{
replyID : 1,
userID : 16,
text : "some reply"
},
{
replyID : 2,
userID : 35,
text : "some reply"
},
]
}
为每个评论答复创建单独的集合(表):
评论:
{
commentID : 1,
userID : 12,
postID : 15,
text : "some comment",
/*other fields*/
}
回复:
{
replyID : 1,
replyTo : 1,
userID : 16,
text : "some reply"
}
{
replyID : 2,
replyTo : 1,
userID : 35,
text : "some reply"
}