如何解决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,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,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,PRIMARY KEY (email,userid)
);
-- user history
CREATE TABLE IF NOT EXISTS users.user_history(
userid TIMEUUID,action TEXT,date TIMESTAMP,PRIMARY KEY (userid,date,action)
);
解决方法
根据cassandra数据建模,以上表格设计是否有效?
是的,根据Cassandra数据建模,这是有效的表设计。
为什么要创建用户,必须插入5个表
这是在Cassandra中的工作方式,首先要满足您要查询的查询,然后根据它们设计表。
如果我想更新电子邮件,电话或密码,首先我必须 删除表中的条目,然后插入更新后的值
只需更新值,则无需先删除它们。但是请确保在每个表中更新相应的条目。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。