#cassandra #data-modeling #cassandra-3.0 #datamodel
#cassandra #моделирование данных #cassandra-3.0 #модель данных
Вопрос:
Я изучаю cassandra. Я должен выполнить базовое моделирование пользовательских таблиц. Вот что я сделал.
CREATE KEYSPACE IF NOT EXISTS users
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};
CREATE TYPE IF NOT EXISTS users.date_type(
month SMALLINT,
day SMALLINT,
year INT
);
CREATE TYPE IF NOT EXISTS users.phone_type(
code INT,
phone TEXT,
);
-- create user
CREATE TABLE IF NOT EXISTS users.user(
userid TIMEUUID,
name TEXT,
dob FROZEN<date_type>,
username TEXT,
email TEXT,
phone FROZEN<phone_type>,
email_verified BOOLEAN,
phone_verified BOOLEAN,
created_on TIMESTAMP,
PRIMARY KEY (userid)
);
-- get user by username
CREATE TABLE IF NOT EXISTS users.user_by_username(
userid TIMEUUID,
username TEXT,
password TEXT,
PRIMARY KEY (username)
);
-- get user by user phone number
-- can have same number for more than one account
CREATE TABLE IF NOT EXISTS users.user_by_phone(
userid TIMEUUID,
phone FROZEN<phone_type>,
password TEXT,
PRIMARY KEY (phone, userid)
);
-- get user by email
-- can have same email for more than one account
CREATE TABLE IF NOT EXISTS users.user_by_email(
userid TIMEUUID,
email TEXT,
password TEXT,
PRIMARY KEY (email, userid)
);
-- user history
CREATE TABLE IF NOT EXISTS users.user_history(
userid TIMEUUID,
name TEXT,
dob FROZEN<date_type>,
username TEXT,
phone FROZEN<phone_type>,
email TEXT,
phone_verified BOOLEAN,
email_verified BOOLEAN,
action TEXT,
date TIMESTAMP,
PRIMARY KEY (userid, date, action)
);
- Является ли приведенная выше конструкция таблицы действительной в соответствии с моделированием данных cassandra?
- Почему, потому что, если я хочу создать пользователя, мне нужно вставить в 5 таблиц
- И если я хочу обновить адрес электронной почты, телефон или пароль, сначала я должен удалить запись в таблице, а затем вставить с обновленными значениями
Комментарии:
1. в Cassandra все начинается с перечисления всех запросов, а затем создания таблиц
2. Кроме того, пожалуйста, задавайте только один вопрос за вопрос.
Ответ №1:
Является ли приведенная выше конструкция таблицы действительной в соответствии с моделированием данных cassandra?
Да, это допустимый дизайн таблицы в соответствии с моделированием данных Cassandra.
Почему, потому что, если я хочу создать пользователя, мне нужно вставить в 5 таблиц
Вот как вы работаете в Cassandra: сначала у вас есть запросы, которые вы хотите обслуживать, а затем разрабатываете свои таблицы в соответствии с ними.
И если я хочу обновить адрес электронной почты, телефон или пароль, сначала я должен удалить запись в таблице, а затем вставить с обновленными значениями
Просто обновите значения, вам не нужно сначала их удалять. Но убедитесь, что вы обновили соответствующие записи в каждой таблице.