在 Cloud Spanner 中表示邮政地址

Represent postal addresses in Cloud Spanner

如何在 Cloud Spanner 中表示邮政地址,以便它们与 postal_address.proto 中定义的原型一致?我想使用 Go 读写 from/to 数据库。

最初,我在 Spanner 中将邮政地址表示为一个类型为 STRING 的地址列。我通过连接原型文件中定义的所有字段来做到这一点。这对于写操作非常有效。

然而,当我想从数据库中读取时,我显然无法提取这些连接为字符串的特定字段。我需要这些字段,因为我需要用 PostalAddress 字段填充结构。

表示这种性质的邮政地址的最佳方式是什么?我可以将每个字段表示为一个单独的列,但这似乎过于复杂并且意味着我必须编写更复杂的查询才能获得单个地址。

听起来您的用例非常适合 Cloud Spanner 现在支持的 JSON 类型。您应该能够为 postal_address.proto that you have mentioned. Please see https://cloud.google.com/spanner/docs/working-with-json 为 how-to 创建相应的 JSON 表示,以及如何在读取期间查询各个字段的示例。