Google cloud platform 在没有父子表关系的Google扳手中使用交错行

Google cloud platform 在没有父子表关系的Google扳手中使用交错行,google-cloud-platform,google-cloud-spanner,Google Cloud Platform,Google Cloud Spanner,我试图使用GooglePanner的交错方法定义一种机制,将多个表中的行放在同一个拆分中。根据文档(),共享相同主键前缀的行被放置在相同的拆分中。但什么是定义“相同的主键前缀”?让我们举个例子。我有三个带有主键的表: table A has PK (C1, CA) table B has PK (C1, CB) table C has PK (C1, CC) 这三个表共享主键的第一个元素columnC1。我希望对于C1具有相同值的所有行转到相同的拆分 我可以将表A定义为B和C的父表吗? 我是否

我试图使用GooglePanner的交错方法定义一种机制,将多个表中的行放在同一个拆分中。根据文档(),共享相同主键前缀的行被放置在相同的拆分中。但什么是定义“相同的主键前缀”?让我们举个例子。我有三个带有主键的表:

table A has PK (C1, CA)
table B has PK (C1, CB)
table C has PK (C1, CC)
这三个表共享主键的第一个元素column
C1
。我希望对于
C1
具有相同值的所有行转到相同的拆分

我可以将表
A
定义为
B
C
的父表吗? 我是否需要使用
PK(C1)
创建一个虚拟表

还有别的办法吗

数据库将有很多读取、很多更新,但很少插入

如有任何建议,将不胜感激


谢谢

为了定义子表,子表的主键必须包含父表的整个主键作为前缀

在您的示例中,需要创建一个主键为C1的表。然后,可以在此父表中交错表A、B和/或C

父表不能完全是虚拟表。要将值插入子表,父表中必须存在相应的行。因此,在您的示例中,您需要确保父表中要添加到任何子表中的每个C1值都有一行