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

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.

主站蜘蛛池模板: 永定县| 德惠市| 双牌县| 迁西县| 吴忠市| 井研县| 莎车县| 简阳市| 宜昌市| 海门市| 孟连| 琼海市| 峡江县| 甘泉县| 昌江| 苗栗县| 怀化市| 根河市| 灌云县| 卫辉市| 桃园市| 江永县| 永寿县| 鹤庆县| 漯河市| 且末县| 长寿区| 宁城县| 嫩江县| 荆门市| 六盘水市| 建德市| 胶州市| 云霄县| 繁峙县| 兴安盟| 伽师县| 涪陵区| 蓬溪县| 黄石市| 宜丰县|