-1
class Author(db.Model):
    name = db.StringProperty()

class Story(db.Model):
    author = db.ReferenceProperty(Author)

story = db.get(story_key)
author_name = story.author.name

author = db.get(author_key)
stories_by_author = author.story_set.get()

知られているように; 上記の例のように、ReferenceProperty を使用することは、データ関係の優れたソリューションです。そう; たとえば、"Author" エンティティと "Story" エンティティ (テーブル) に大量の行があります。そして何年も経った後、「Author」エンティティを削除するか、name プロパティを別の名前に置き換えました。当然; アプリはエラーをスローする必要があります。この状況 (管理コード) は合理的ですか、それとも手動で関係を実行していますか? この場合の代替モデルはありますか?

4

1 に答える 1

0

それがデータストアが提供するツールです。より堅牢なものが必要な場合は、常に ReferenceProperties をチェックしてクリーンアップするデストラクタを持つクラスを構築できます。

これは、メモリをリークしてぶら下がったポインタを残すことができるので、ポインタが悪いことであるかどうかを尋ねるようなものです。はい、そうですが、一部の言語では、それが利用可能な基本的なツールです。より安全なものが必要な場合は、その周りにラッパーを作成してください。または、別の言語(Cloud SQL など)を使用します。

于 2012-10-06T15:31:29.100 に答える