Столбец
Stati c - это способ связать данные со всем разделом, поэтому он будет распределен между всеми строками внутри этого раздела. Существуют законные случаи, когда все строки должны иметь одинаковые данные, и когда данные обновляются, нам не нужно обновлять каждую строку.
Один из примеров, который приходит на ум, - это электронная коммерция. Например, вы продаете что-то, и вы продаете в разных странах с разной валютой и разными ценами. Но между ними есть что-то общее, например, описание, размеры и т. Д. c. В этом случае мы можем смоделировать его следующим образом:
create table articles (
sku text,
description text static,
country text,
currency text,
price decimal,
primary key (sku, country)
);
, в этом случае, когда вы делаете select * from articles where sku = ... and country = ...
, вы все равно получаете описание, и вы можете обновить описание только с помощью update articles set description = '...' where sku = ...
, и следующий выбор будет получить обновленное описание.
Кроме того, столбцы stati c могут существовать в разделе без каких-либо строк. Одним из случаев использования, которые я видел, является сбор агрегированной информации, где подробные данные были сохранены в виде отдельных строк с некоторым TTL, и было задание, которое агрегировало данные в столбец stati c, поэтому, когда срок действия строк истек, тогда этот раздел все еще остается только с агрегированными данными.