关于Google Cloud Spanner与Spring Cloud GCP一对一关系的技术问询
Cloud Spanner与Spring Data Cloud Spanner关系支持问题解答
文档表述的含义
这段内容的意思是:在Cloud Spanner和Spring Data Cloud Spanner中,一对一、多对多关系都能通过交错父子表的结构来实现,但只有**父子表关系(本质是一对多)**是原生就支持的类型。
直白点说就是,官方原生只提供一对多的父子交错表支持,一对一和多对多都得基于这个结构来“模拟”实现,没有专门的原生语法或API直接对应这两种关系。
子表仅需一条记录时的方案建议
没错,目前官方的建议就是即便子表只会有一条关联记录,也用一对多的交错父子关系来实现。因为原生没有一对一的支持,你要是想做严格的一对一,要么自己在业务代码里加约束(比如校验子表只能有一条对应记录),要么就用官方支持的父子表结构,然后在代码层面限制关联数量——显然官方更推荐后者,用原生支持的方式来模拟一对一。
关于长期开放的一对一支持Issue
这个Issue一直处于开放状态,说明官方确实收到了用户对原生一对一关系支持的需求,但可能因为Spanner底层存储模型的设计限制(交错表本身就是为一对多场景优化的)、Spring Data规范的适配问题,或者开发优先级的安排,导致这个功能迟迟没有落地。短期内,还是得靠父子表模拟一对一的方式来满足需求。
内容的提问来源于stack exchange,提问作者Rocky
相关产品推荐
相关产品推荐

