官术网_书友最值得收藏!

Beyond two columns

We've now seen a table with two columns in its primary key: a partition key, and a clustering column. As it turns out, neither of these roles is limited to a single column. A table can define one or more partition key columns, and zero or more clustering columns.

For instance, in our status application, we might want to allow users to reply to other users' status updates. In this case, each status update would have a stream of replies; replies would be partitioned by the full primary key of the original status update, and each reply would get its own timestamped UUID:

CREATE TABLE "status_update_replies" (
  "status_update_username" text,
  "status_update_id" timeuuid,
  "id" timeuuid,
  "author_username" text,
  "body" text,
  PRIMARY KEY (
    ("status_update_username", "status_update_id"),
    "id"
  )
);

Note the extra set of parentheses around the status_update_username and status_update_id columns in the PRIMARY KEY declaration. This tells Cassandra that we want those two columns together to form the partition key. Without the extra parentheses, Cassandra assumes by default that only the first column in the primary key is a partition key, and the remaining columns are clustering columns.

主站蜘蛛池模板: 民和| 文登市| 溧阳市| 玉山县| 南丰县| 柳河县| 张家界市| 丘北县| 介休市| 吕梁市| 泸水县| 泸州市| 双鸭山市| 平泉县| 西充县| 白河县| 贡山| 夏河县| 遂宁市| 贵州省| 房山区| 永川市| 青川县| 万安县| 井研县| 芜湖市| 祁连县| 巩留县| 永丰县| 韶山市| 盐亭县| 团风县| 商南县| 鹤山市| 沛县| 东丽区| 鄂托克前旗| 瓮安县| 镇巴县| 沙洋县| 望城县|