2016-08-12 9 views
1

Google App EngineのDatastoreにReferencePropertyが使用されているカスケード削除を実行するという概念はありますか?私はGAEのDatastoreがリレーショナルデータベースではないことを理解しています。しかし、ユーザーがブログ投稿を好きにできるシンプルなモデルを考えてみましょう。ReferencePropertyオブジェクトのGoogleデータストアのカスケード削除

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はそれを自動的に行うことができますか?

私の理解を深めるために、誰でも助けていただきありがとうございます。

答えて

関連する問題