Database Reference
In-Depth Information
Defining static columns
To see how static columns work, we'll create a new table called
users_with_status_updates
. Our goal for this table is to contain both user profiles
and users' status updates; however, we only want one copy of a user profile, even though
each user might have many status updates. To accomplish this, we'll add all of the columns
from both
users
and
user_status_updates
to our new table, but we'll declare the
user profile columns as
STATIC
:
CREATE TABLE "users_with_status_updates" (
"username" text,
"id" timeuuid,
"email" text STATIC,
"encrypted_password" blob STATIC,
"body" text,
PRIMARY KEY ("username", "id")
);
Since the
email
and
encrypted_password
columns are properties of a user, not of a
specific status update, we declare them
STATIC
. Any column that is declared
STATIC
has
one value per partition key. In other words, there will be exactly one
email
value associ-
ated with a given
username
in our table.
Note
The goal of static columns is to allow rows that share a partition key value to share other
data as well. For this to be useful, there must be multiple rows per partition key, which is
another way of saying that there must be at least one clustering column. It's illegal to de-
clare a static column in a table with no clustering columns.