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

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.

主站蜘蛛池模板: 金沙县| 思茅市| 屯昌县| 简阳市| 咸宁市| 镇江市| 天气| 安塞县| 金寨县| 曲松县| 福泉市| 桐柏县| 财经| 兴山县| 扎囊县| 陵水| 宁乡县| 乌鲁木齐县| 叙永县| 潜江市| 阿拉尔市| 垦利县| 贞丰县| 依安县| 青州市| 大渡口区| 泸西县| 隆德县| 盘锦市| 托里县| 宕昌县| 西宁市| 安国市| 朝阳县| 太谷县| 榆树市| 多伦县| 翼城县| 西乌珠穆沁旗| 金湖县| 姜堰市|