使用資料庫時,常常會遇到一對多和多對多關係。在這種情況下,將這些關係高效且可擴展地映射到 Go 結構至關重要。
一種有效的方法是利用PostgreSQL 的陣列聚合器和 GROUP BY 功能。這涉及創建一個視圖,使用數組聚合將項目及其相關資料分組在一起。然後可以查詢結果視圖,並將陣列內容解組到 Go 結構中。
SELECT tag.name, tag.id FROM tag WHERE item_id = item.id
) AS taglist
GROUP BY
) AS taglist
GROUP BY
GROUP BY
item.id`
db.MustExec(sql)
]Go 代碼將是:
return errfor rows.Next() {
var item Item
var jsonString string
return errScan(&jsonString); err != nil {
return err
}
items =追加(items, item)
}失敗的方法 3(結構掃描):
理論上理想,但 SQLx 不支援。 可能的方法 4 ( PostgreSQL 陣列):未經測試,但可能不可行。
最終,最佳方法取決於應用程式的特定要求和可用技術。免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3