我无法弄清楚如何跨多个表维护属性更新以确保数据一致性。
例如,假设我有演员和粉丝之间的多对多关系。一个粉丝可以养很多演员,一个演员也有很多粉丝。我做了几个表来支持我的查询
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,我就无法更改我的状态。 …