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

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.

主站蜘蛛池模板: 肥西县| 婺源县| 浠水县| 富川| 广州市| 婺源县| 新昌县| 衡阳县| 通道| 灵石县| 辽中县| 保康县| 英超| 喀什市| 老河口市| 泽普县| 望城县| 遂平县| 西畴县| 东阳市| 都匀市| 昌黎县| 垣曲县| 万年县| 华宁县| 滦南县| 铜陵市| 依兰县| 务川| 凌源市| 泰顺县| 从江县| 鄂温| 广饶县| 巢湖市| 新竹市| 策勒县| 辽中县| 宜城市| 睢宁县| 贺州市|