2010-04-07 3 views
0

다음과 같은 상황을 모델링해야하며 엔진의 경우 Google 애플리케이션에 대해 "올바르게"수행하는 방법에 대해 일관된 예제를 찾을 수없는 것 같습니다.GAE 모델링 관계 옵션

나는 다음과 같은 간단한 상황을 가지고 가정 :

Company 1 -----> M Store 

기업이 많은 매장을 가지고있다. 각 상점은 주소지 1, 도시, 주, 국가, 우편 번호 등으로 구성된 주소를 가지고 있습니다.

Ok. 우리가 "감사"라고 말하는 것을 만들어야한다고합니다. 감사는 회사 용이며 1 대 다수 쳐다 볼 수 있습니다.

그래서 같은 것을 :

Audit 1 ------> 1 Company 
     1 ------> M Store 

지금 우리가 올바른 위치에 "감사"를 보내기 위해 스토어 "주소"에 따라 "감사"를 모두 조회 할 필요가있다.

이 같은 수많은 기사 것 같다 :는 "ContactCompany"모델 클래스를 생성하는 예를 제공

http://code.google.com/appengine/articles/modeling.html

합니다. 그러나 그들은 또한 당신이 이런 종류의 관계를 사용해야한다고 말합니다. 실제로 "해야 할 때"와 "주의"를 요구할 때만 을 사용해야합니다.

나는 또한 만큼 비정규 화해야 가능하므로 모든 "쿼리 가능"데이터를 감사 클래스로 이동해야합니다.

그래서이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

나는 Expando 클래스가있는 것을 보았지만 "best"옵션인지 확실하지 않습니다.

이 문제에 대한 도움이나 생각은 완전히 감사하겠습니다. 사전에

감사합니다, 매트 지금

답변

1
class Company(db.Model): 
    name = db.StringProperty() 

class address(db.Model): 
    address = db.PostalAddressProperty() 

class store(db.Model): 
    company = db.ReferenceProperty(Company) 
    address = db.ReferenceProperty(Address) 

당신은 모든 회사의 저장소에 대해 조회 할 수 있습니다,이 가게의 수천 MNC하지 않는 한

company_oject.address_set.all().filter().fetch() 

,이 쿼리는 대부분 잘 작동합니다 사례.

http://code.google.com/appengine/docs/python/datastore/entitiesandmodels.html#References

더 도움이됩니다.

+0

답변에 감사드립니다. – Sway