微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cassandra用户表数据建模

如何解决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)
);
  1. 根据cassandra数据建模,以上表格设计是否有效?
  2. 为什么要创建用户,必须插入5个表
  3. 如果我想更新电子邮件,电话或密码,首先我必须删除表中的条目,然后使用更新后的值插入

解决方法

根据cassandra数据建模,以上表格设计是否有效?

是的,根据Cassandra数据建模,这是有效的表设计。

为什么要创建用户,必须插入5个表

这是在Cassandra中的工作方式,首先要满足您要查询的查询,然后根据它们设计表。

如果我想更新电子邮件,电话或密码,首先我必须 删除表中的条目,然后插入更新后的值

只需更新值,则无需先删除它们。但是请确保在每个表中更新相应的条目。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。