11

CQL 3 允许使用如下定义的“复合”主键:

CREATE TABLE timeline (
    user_id varchar,
    tweet_id uuid,
    author varchar,
    body varchar,
    PRIMARY KEY (user_id, tweet_id)
);

使用这样的模式,分区键(存储引擎行键)将由user_id值组成,而tweet_id将复合到列名中。相反,我正在寻找的是分区键(存储引擎行键)具有像 user_id:tweet_id 这样的复合值。显然我可以在我的应用程序中做类似的事情key = user_id + ':' + tweet_id,但是有没有办法让 CQL 3 为我做这件事?

4

2 回答 2

15

事实上,是的,你可以。此票证中添加了该功能:

https://issues.apache.org/jira/browse/CASSANDRA-4179

你的格式是:

CREATE TABLE timeline (
    user_id varchar,
    tweet_id uuid,
    author varchar,
    body varchar,
    PRIMARY KEY ((user_id, tweet_id))
);
于 2012-12-18T22:47:21.433 回答
2

直到 1.2 出来,答案是否定的。分区键将始终是第一个组件。正如您所说,这样做的方法是自己创建复合键。你不应该回避这个,因为它实际上很常见。

于 2012-12-18T20:18:04.330 回答