卡桑德拉的CRUD

时间:2015-02-23 03:58:25

标签: cassandra cql3

我正在尝试简单的CRUD操作Cassandra,并且不明白我应该如何建模数据。

假设我们需要管理简单的用户数据:

UserId | Email | Name

我们希望能够通过UserIdEmail获取信息。此外,我们希望能够更改用户信息,即EmailName

这让我陷入两难境地:通过Email查询,我应该将它添加到PRIMARY KEY。但如果我将其编入索引,我将无法更新它。

我应该如何更改数据模型或索引以便能够更新数据?

据我所知,二手指数在卡桑德拉是邪恶的,我不应该用它们来保持卡桑德拉的表现。

1 个答案:

答案 0 :(得分:3)

实际上,除非绝对必须,否则不应使用二级索引。但是,如果您需要通过电子邮件进行搜索,则可以创建另一个包含2列的表格,EmailUserId。主键为Email,这就是UserIdEmail搜索的方式。可以将其视为传统关系数据库中的索引。由于Email值应该是唯一的 - 查找表方法应该比二级索引更有效。

UserId找到Email后,您可以在对主表的查询中使用它。