GAE Datastore APIについて読んだ後でも、エンティティのプロパティとしてキー名と親を複製する必要があるかどうかはわかりません。
従業員と部門の2種類のエンティティがあるとしましょう。各従業員には親として部門があり、アカウント名で識別されます。従業員のキー名としてアカウント名を使用しています。ただし、Employeeをモデル化するときは、次の2つをプロパティとして保持します。
division = db.ReferenceProperty(Division)
account_name = db.StringProperty()
明らかに、私は手動でその親とそのキー名division
との一貫性を保つ必要があります。account_name
私がこの余分な仕事をしている理由は次のとおりです。
- GQL / Datastore APIは、通常のプロパティだけでなく、親とキーの名前もサポートしていない可能性があります。プロパティについてできることはありますが、親またはキーの名前はありません(または本質的にプロパティを参照していますか)?GQLクエリでキー名を使用するにはどうすればよいですか?
- キー名と親の意味は特に明確ではありません。名前はわかりやすいものではないため、アカウント名をキー名として使用していることを他の寄稿者に通知する必要があります...
しかし、これは本当に不要な作業であり、時間とストレージスペースを浪費します。私はSQLを取り除くことができません-それを考えて-なぜGoogleは私たちにプロパティをキーとして定義させないのですか?そしてもう一人は親になりますか?次に、それらに名前を付けて、通常のプロパティとして使用できます...
ここでのベストプラクティスは何ですか?