带反规范化的cassandra数据建模

l2osamch  于 2021-06-09  发布在  Cassandra
关注(0)|答案(1)|浏览(417)

我读了Cassandra数据建模,一切都很清楚,除了非规范化的数据可能会改变。如何同步?更新的方法是什么 email 当用户电子邮件从此示例更改时:

CREATE TABLE groups ( groupname text, username text, email text, age int, hash_prefix int, PRIMARY KEY ((groupname, hash_prefix), username) )
``` `groupname` 是组的一部分,用户从数据模型中可能不知道任何组,因此在用户更改后无法更新电子邮件。
下面描述的解决方案是否合适?
向用户模型中添加列 `groups` (类型 `set<text>` )
如果用户模型有主键 `username` 然后我可以加一些 `DAOperUser(username)` 与 `updateName` 以及 `addGroup` 应用程序的方法。
每 `username` 示例化自己的对象(通过工厂),它将从 `user` 关于初始化的表。这样的话 `username` 以及 `groups` ,因此可以将更改视为 `write batch` 对于两个表( `users` 以及 `groups` ).
rkue9o1l

rkue9o1l1#

在插入或更新数据时,需要使用批处理语句来保持两个表之间的数据同步 users 以及 groups .
例如:

BEGIN BATCH
  INSERT INTO users (...) VALUES (...);
  INSERT INTO groups (...) VALUES (...);
APPLY BATCH;

如果你感兴趣的话,有一个关于https://www.datastax.com/dev 这将通过在同一个浏览器选项卡(原子性和批处理)上运行的cassandra集群上的实践练习详细解释这些概念。干杯!

相关问题