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

我目前正在决定将哪个堆栈用于(小型)社交网络。我很想在 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')



繁花如伊
浏览 192回答 1
1回答

明月笑刀无情

在 App Engine 上,您可以使用两种实体类型对此进行建模:type Comment struct {    Title    string      Text     string    User     *User }type Photo struct {  Description   string}使用祖先路径将子评论与父照片相关联。您可以在一个查询中获得一张照片的所有评论。您可以通过放置新的评论实体来添加评论。我认为您可以使用问题中的类型存储照片(根据文档,您似乎可以,但我没有在实体中嵌套三个级别的个人经验)。要使用此设计添加评论,应用程序获取照片(这将包括评论),将评论添加到照片,并将带有所有评论的照片放回数据存储。App Engine 没有像 Mongo 的 $push 那样的实体修改运算符。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go