为了账号安全,请及时绑定邮箱和手机立即绑定

Google App Engine:Go 中的一对多关系

Google App Engine:Go 中的一对多关系

Go
繁花如伊 2021-08-16 19:59:49
我目前正在决定将哪个堆栈用于(小型)社交网络。我很想在 Google App Engine 之上用 golang 编写它,因为这将产生干净、快速的代码,并具有现代云服务和托管的所有优点。您将如何使用 golang 在 GAE 中实现一对多和/或多对一关系?根据文档,您可以在数据存储结构中使用自己的类型,只要它们的属性是文档中提到的属性。例如:type Comment struct {    Title    string      Text     string    User     *User }type Photo struct {    Description   string    Comments      []*Comment}应该在我看来有效,对吗?如果我是对的,我该如何:a) 在一个查询中填充这种关系?b) 以方便的方式为照片添加评论?(例如 MongoDB '$push')
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

在 App Engine 上,您可以使用两种实体类型对此进行建模:


type Comment struct {

    Title    string  

    Text     string

    User     *User 

}


type Photo struct {

  Description   string

}

使用祖先路径将子评论与父照片相关联。您可以在一个查询中获得一张照片的所有评论。您可以通过放置新的评论实体来添加评论。


我认为您可以使用问题中的类型存储照片(根据文档,您似乎可以,但我没有在实体中嵌套三个级别的个人经验)。要使用此设计添加评论,应用程序获取照片(这将包括评论),将评论添加到照片,并将带有所有评论的照片放回数据存储。


App Engine 没有像 Mongo 的 $push 那样的实体修改运算符。


查看完整回答
反对 回复 2021-08-16
  • 1 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信