小编Jam*_*Maa的帖子

如何在cassandra中跨多个表保持数据一致性?

我无法弄清楚如何跨多个表维护属性更新以确保数据一致性。

例如,假设我有演员和粉丝之间的多对多关系。一个粉丝可以养很多演员,一个演员也有很多粉丝。我做了几个表来支持我的查询

CREATE TABLE fans (
    fan_id uuid,
    fan_attr_1 int,
    fan_attr_2 int
    PRIMARY KEY ((fan_id))
)

CREATE TABLE actors (
    actor_id uuid,
    actor_attr_1 int,
    actor_attr_2 int
    PRIMARY KEY ((actor_id))
)

CREATE TABLE actors_by_fan (
    fan_id uuid,
    actor_id uuid,
    actor_attr_1 int,
    actor_attr_2 int
    PRIMARY KEY (fan_id, actor_id)
)

CREATE TABLE fans_by_actor (
    actor_id uuid,
    fan_id uuid,
    fan_attr_1 int,
    fan_attr_2 int
    PRIMARY KEY (actor_id, fan_id)
)
Run Code Online (Sandbox Code Playgroud)

假设我是一个粉丝,我在我的设置页面上,我想将 my 更改fan_attr_1为不同的值。

fans表上,我可以很好地更新我的属性,因为应用程序知道我的 fan_id 并且可以键入它。

但是fan_attr_1,如果fans_by_actor不先查询与风扇关联的 actor_id,我就无法更改我的状态。 …

data-modeling cql data-consistency cassandra

6
推荐指数
1
解决办法
1443
查看次数

标签 统计

cassandra ×1

cql ×1

data-consistency ×1

data-modeling ×1