【发布时间】:2011-03-20 03:02:30
【问题描述】:
我正在为 PenWag.com 进行从 MySQL 到 Cassandra 的转换。在 Cassandra 中,我存储的是使用 GUID 键控的用户,但用户使用他们的电子邮件登录,而不是 GUID(显然)。 GUID 作为用户的键对我来说比电子邮件更有意义,原因有两个。从实际的角度来看,更改或删除/添加包含所有 SuperColumns 的行似乎太麻烦了。从理论上讲,仍然是同一个用户,为什么要改变他们的密钥?
不过,这是我的问题:我正在单独的 ColumnFamily 中构建索引,映射电子邮件->GUID 以支持登录。这是一个标准类型的 CF,其中列名是电子邮件,值是 GUID。避免为每个映射加载整个 SC 是标准的,而不是超级的。支持“更改电子邮件”很容易,它只是一个列删除/添加。但似乎另一种方法是将索引存储为行而不是列,其中行键是电子邮件,列保存 GUID。删除/添加这些行不会很麻烦,因为只有列(GUID)要管理。
似乎这两种方法都有效。各自的优缺点是什么?有最佳做法吗?
【问题讨论】:
标签: nosql cassandra bigtable datamodel