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

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.

主站蜘蛛池模板: 安新县| 宜阳县| 东台市| 六盘水市| 通道| 巴中市| 登封市| 泰州市| 遵义县| 金山区| 晴隆县| 阳高县| 彰化县| 阳江市| 土默特右旗| 和林格尔县| 盐边县| 刚察县| 东山县| 延川县| 资中县| 开原市| 张家界市| 棋牌| 徐闻县| 化州市| 潜江市| 察隅县| 石柱| 浦江县| 凤冈县| 永昌县| 华蓥市| 慈利县| 鄂州市| 乐清市| 松滋市| 锦州市| 北安市| 英吉沙县| 夏河县|