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

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.

主站蜘蛛池模板: 虹口区| 沾益县| 皮山县| 丰顺县| 昭苏县| 淮北市| 台江县| 观塘区| 隆化县| 托里县| 贺兰县| 新干县| 阿瓦提县| 喀喇沁旗| 桂阳县| 垦利县| 永泰县| 泰兴市| 大石桥市| 防城港市| 常德市| 石首市| 乌兰浩特市| 嘉祥县| 桐乡市| 武强县| 永寿县| 南召县| 文水县| 通化市| 沙湾县| 湛江市| 朔州市| 蕲春县| 祁连县| 沅陵县| 彭阳县| 苏尼特右旗| 会泽县| 饶阳县| 临邑县|