【发布时间】:2014-03-17 19:15:41
【问题描述】:
我正在尝试在后端使用 Cassandra 构建一个用于教育目的的电影数据库。对数据库的查询主要通过电影片名进行。所以目前我拥有的数据适合以下模型。
电影名称 | imdb 评级 |发布年份 |演员
阅读 CQL 文档后,我找到了使用以下结构的音乐播放列表示例
CREATE TABLE playlists (
id uuid,
song_order int,
song_id uuid,
title text,
album text,
artist text,
PRIMARY KEY (id, song_order ) );
我的查询是使用单独的 id 列的必要性。标题栏不能作为主键吗?不使用单独的 uuid 字段有什么优缺点?
我为我的模型设计的命令是
CREATE TABLE movies (
title text,
imdb_rating double,
year int,
actors text,
PRIMARY KEY (title, imdb_rating ) );
我相信我的模型标题是PRIMARY KEY 和PARTITION KEY,imdb_rating 是CLUSTERING KEY(用于按升序排列输出)。我的模型有什么问题吗?它将如何影响数据的分布?为什么我/不应该使用 uuid?我计划将 replication_factor 保持为 2,因为我使用的节点数只有 3。
也根据文档
在这些情况下不要使用索引:
…… •在经常更新或删除的列上
在我的数据库中,最新的列是 imdb_rating,因此我没有在其上构建任何二级索引。
【问题讨论】:
标签: database cassandra data-modeling cql cql3