質問

App Engineデータベースに投稿するデータを含むテーブルビューがあります。 テーブルのエントリを削除するたびに、App Engineデータベースのアイテムも削除したいと思います。削除するエントリを知るにはどうすればよいですか?

これを考えていた:

GAEストアに保存するすべてのアイテムについて、iphone固有のデバイスIDを持つモデルへの参照を作成します。 GAEストアに保存するすべてのアイテムに対して、iphone db&のUUIDを挿入します。アプリエンジンデータベース。

したがって、クエリは次のようになりますex:

del item where unique device id = ####
and item UUID = ####

App Engineにログインしたくないため、一意のデバイスIDを使用しています。

唯一の懸念事項はパフォーマンスです。GAEはデバイスIDとUUIDを検索する必要があります。これが問題になるかどうかわかりませんか?

最良の解決策は、db.Key()で削除できる場合ですが、GAEにデータを投稿するときに生成されたキーがわからないため、その方法がわかりません。

誰かからアドバイスをいただけますか?

役に立ちましたか?

解決

提案するアプローチは合理的です。キー名としてUUIDを指定した場合、それを直接削除できます。キー名を持つエンティティを作成するには、次の手順を実行します。

MyEntity(key_name=a_string, ...)

エンティティをキー名で(最初に取得せずに)削除するには、次のようにします。

db.delete(db.Key.from_path("MyEntity", a_string))

UUIDとデバイスIDの両方を持つ必要はありません-UUIDはすべてのデバイスで一意性を確保するのに十分です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top