我创建了数据库"电影"有三个列系列:
CREATE TABLE movies (
movie_id int primary key,
title text,
avg_rating decimal,
total_ratings int,
genres set<text>
);
# shows all ratings for specific movie
CREATE TABLE ratings_by_movie (
movie_id int,
user_id int,
rating decimal,
ts int,
primary key(movie_id, user_id)
);
# show all ratings of specific user
CREATE TABLE ratings_by_user (
user_id int,
movie_id int,
rating decimal,
ts int,
primary key(user_id, movie_id)
);
是否可以进行以下查询?
答案 0 :(得分:1)
Cassandra =没有加入。您的模型是100%关系型的。你需要为Cassandra重新思考它。我建议你看看这些幻灯片。他们深入研究如何为cassandra建模数据。这里还有一个关于该主题的网络研讨会。但是不要再考虑外键和连接表了,因为如果你需要关系,cassandra就不是工作的工具。
但为什么?
因为那时您需要检查一致性并执行关系数据库所做的许多其他事情,因此您将失去cassandra提供的性能和可伸缩性。
我该怎么办?
非规范化!一张表中有大量数据?但是这个表会有太多列! 所以? Cassandra可以处理表格中的大量列。
有关详细信息,请查看:How to do a join queries with 2 or more tables in cassandra cql