Моделирование данных Cassandra уважает «Денормализация и дублирование данных - это факт жизни с Cassandra». Но один из минусов деморализованных данных — очень сложные обновления. Например, если у меня есть три таблицы, предназначенные для разных запросов, выбор будет в порядке. Однако, если в моем приложении я хочу обновить имя пользователя и мне нужно обновить эти три таблицы? Обновление в первой таблице выглядит нормально. Как насчет последних двух? Упасты будут очень дорогими? Как мне поступить в этом случае?
CREATE TABLE users_by_username (
username text PRIMARY KEY,
email text,
age int
)
CREATE TABLE users_by_email (
email text PRIMARY KEY,
username text,
age int
)
CREATE TABLE groups (
groupname text,
username text,
email text,
age int,
hash_prefix int,
PRIMARY KEY ((groupname, hash_prefix), username)
)