2010-11-29 17 views
1

私はお互いを参照する2つのタイプのエンティティを持つことを望みます。 しかし、pythonは、最初の本体ではまだ2番目のエンティティクラスの名前について知らない。 どうすればいいですか。 App Engine、2つのエンティティ間の相互参照

class Business(db.Model): 
    bus_contact_info_ = db.ReferenceProperty(reference_class=Business_Info) 

class Business_Info (db.Model): 
    my_business_ = db.ReferenceProperty(reference_class=Business) 

あなたはアドバイスだけで参照を使用し、他に(クエリオブジェクトである)暗黙的に作成されたプロパティ を使用する場合は

。 はその後、私は

答えて

4

クエリが少し遅いのpythonでこのコードを書く方法を助言する直接キー

嘆願でget()を使用して対クエリを使用してのCPUクォータペナルティを疑問視し、ので、もう少しを使うのですかリソース。 ReferencePropertyはありません reference_classを必要とします。したがって、常にビジネスのように定義することができます:

class Business(db.Model): 
    bus_contact_info_ = db.ReferenceProperty() 

あなたのデータ構造にも良い選択肢があります。いくつかのアイデアについては、modelling relationshipsの記事をご覧ください。

これは1対1のマッピングですか?これが1対1のマッピングの場合、データを非正規化する方がよい場合があります。

これまでに変更されていますか?そうでない場合(そしてそれが一対一である場合)、キー/キー名を直接使用できるように、エンティティグループを使用してデータを構造化することができます。 BusinessInfoをBusinessの子にし、常にkey_nameとして 'i'を使用すると、これを行うことができます。例:

+0

ありがとうございますRobert – Tiwari

関連する問題