【问题标题】:Cascade delete in Google datastore for ReferenceProperty objects在 Google 数据存储中为 ReferenceProperty 对象级联删除
【发布时间】:2016-08-12 10:03:42
【问题描述】:

是否有让 Google App Engine 中的数据存储区在使用 ReferenceProperty 的情况下执行级联删除的概念?据我了解,GAE 中的 Datastore 不是关系数据库。然而,考虑一个简单的模型,用户可以喜欢博客文章。

class Post(db.Model):
    subject = db.StringProperty(required=True)
    content = db.TextProperty(required=True)
    created = db.DateTimeProperty(auto_now_add=True)
    created_by = db.ReferenceProperty(User, required=True,
                                      collection_name='posts')

和:

class Like(db.Model):
    post = db.ReferenceProperty(Post, required=True, collection_name='likes')
    user = db.ReferenceProperty(User, required=True, collection_name='likes')

在删除帖子时,我希望也删除所有“喜欢”。

def delete(self, post_key):
        """ Deletes a post from the datastore """
        db.delete(post_key)
        # TODO: Should really delete any corresponding likes
        #       and comments too (else they're be orphaned)

那么,我必须自己编写这些删除喜欢的代码,还是 GAE 可以自动完成?

感谢任何人提供的任何帮助以增加我的理解。

【问题讨论】:

    标签: google-app-engine google-cloud-datastore


    【解决方案1】:

    datastore中没有级联/递归删除,必须自己实现。

    这些可能有帮助(相同的目标,不同的原因):

    【讨论】:

      猜你喜欢
      • 2011-04-01
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      相关资源
      最近更新 更多