Имеет ли смысл эта простая схема в контексте Кассандры? Или я могу просто использовать уникальный индекс ограничения вместо ручной индексации через ключ раздела для имени пользователя и электронной почты? Я понял, что для обеспечения нормальной эффективности индекса в Cassandra консультация должна включать ключ раздела, поэтому, если я хочу выполнить «обход» для таблицы с миллионами строк без указания ключа раздела только столбца индекса, это может быть не так. так быстро, как это должно быть, поэтому ручное индексирование путем создания новых ключей раздела становится лучшим выбором. Верно ли это представление? Единственная проблема с ручным индексированием заключается в том, что вам нужно будет сделать это вручную, если вы удалите строку для «пользователей», вам нужно будет получить соответствующие значения для соответствующего индексированного столбца перед удалением, чтобы иметь возможность удалить индексы вместе, и, возможно, также потребуется его пакетная обработка. Я неправильно понял Кассандру?
CREATE TABLE users (
id uuid PRIMARY KEY,
username text,
email text,
password_hash text,
password_salt text,
display_name text,
timezone int,
created_at timestamp,
last_login_at timestamp
);
CREATE TABLE usernames (
username text PRIMARY KEY,
user_id uuid
);
CREATE TABLE user_emails (
email text PRIMARY KEY,
user_id uuid
);