我读了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` ).
1条答案
按热度按时间rkue9o1l1#
在插入或更新数据时,需要使用批处理语句来保持两个表之间的数据同步
users
以及groups
.例如:
如果你感兴趣的话,有一个关于https://www.datastax.com/dev 这将通过在同一个浏览器选项卡(原子性和批处理)上运行的cassandra集群上的实践练习详细解释这些概念。干杯!