Cassandra数据模型设计方法

时间:2016-09-15 21:32:51

标签: cassandra cassandra-2.1

我是新的卡桑德拉。请帮助我了解如何在Cassandra中定义最佳数据模型。

模型1:

CREATE TABLE users (
    id uuid PRIMARY KEY,
    username text,
    email text,
    age int
)

CREATE TABLE users_by_username (
    username text PRIMARY KEY,
    id uuid
)

CREATE TABLE users_by_email (
    email text PRIMARY KEY,
    id uuid
)
  

优点

:         1.没有重复的记录。         2.仅更新/删除一次,但要查找用户详细信息,需要选择一个             查询。

  

Dis优势

    1.  To get user records, Need to select in 2 tables (  users_by_username   
         or users_by_email and users )

模型2

 CREATE TABLE users_by_username (
    id uuid PRIMARY KEY,
    username text,
    email text,
    age int
)

  CREATE TABLE users_by_email (
    id uuid PRIMARY KEY,
    username text,
    email text,
    age int
)
  

优点:

  1.  To get user records, only once select query.
  

Dis优势:

    1.Duplicate records in two tables.
    2. Update/Delete needs to performed in two tables.  

请告诉我哪种型号会好?

1 个答案:

答案 0 :(得分:0)

建模表(列族)的最佳方法是首先定义如何访问信息: - 你打算通过uuid,电子邮件,用户名进行查询吗?只有当你用uuid(主键)

查看时,你的例子才能正常工作