【发布时间】:2017-12-09 01:13:55
【问题描述】:
假设我有一个名为PEOPLE 的表,它存储Person 的行。但是,Person 包含 slice、struct 和 slice of struct,即 Superpower、 Vehicle 和 FriendList 字段。
我应该如何使用 Golang 在 Postgresql 中存储和检索这些值?我找不到与此问题相关的任何实用教程。使用自定义数据类型,或者 JSON,或者 ORM 方法,或者构建自定义函数来处理这些?有很多意见,但我仍然无法找到解决此问题的有效方法,请帮助。
我正在使用Ozzo-dbx,但是,欢迎任何解决方案。
有人可以提供一个工作示例吗?对不起,如果这个新手问题激怒了你,但我已经尝试了几天,并且一直失败......(T_T)
type Transport struct {
Brand string
Size int
}
type Friend struct {
Name string
IsProgrammer bool
}
type Person struct {
ID int
Name string
Superpower []string //slice
Vehicle Transport //struct
FriendList []Friend //slice of struct
}
【问题讨论】:
-
您可以将
slice、struct和slice of struct值存储为JSON格式,以及其他值as is(所以ID为int,Name为stringETC)。这将是合乎逻辑的:) -
SuperPower、Vehicle 和 FriendList 属性如何存储在数据库中?您是否控制该决定或是否有相关表格?如果由您决定,那么您有很多选择;如果已经设置了数据库结构,那么您只需要处理这些关联...
-
我希望将这些字段(SuperPower、Vehicle 和 FriendList)存储为 Golang 中的数据类型.这是最简单的。希望这些字段可以在没有 JSON 编码的情况下存储,那是最快。如果可以在没有关联的相对表的情况下进行存储,那将是优雅。如果可能的话,我希望用dot notation来访问数据库,比如
SELECT Person.Vehicle.Brand ...,那么这可能会很好地实现...可以吗? :)
标签: postgresql go