Google App Engine에서 NDB를 사용하여 애그리 게이션 또는 컴포지션을 구현하는 방법은 무엇입니까? 유스 케이스에 따라 진행하는 가장 좋은 방법은 무엇입니까? 감사합니다.GAE에서 NDB와 컴포지션/애그리 게이션을 구현하는 방법
반복 속성을 사용하려고했습니다. 이 아주 간단한 예제에서, 프로젝트는 Tag 키 목록을 가지고 있습니다 (많은 Project 객체가 Tag 객체를 공유 할 수 있기 때문에 StructuredProperty를 사용하는 대신이 방법으로 코딩했습니다).
class Project(ndb.Model):
name = ndb.StringProperty()
tags = ndb.KeyProperty(kind=Tag, repeated=True)
budget = ndb.FloatProperty()
date_begin = ndb.DateProperty(auto_now_add=True)
date_end = ndb.DateProperty(auto_now_add=True)
@classmethod
def all(cls):
return cls.query()
@classmethod
def addTags(cls, from_str):
tagname_list = from_str.split(',')
tag_list = []
for tag in tagname_list:
tag_list.append(Tag.addTag(tag))
cls.tags = tag_list
-
편집 (2) : 감사합니다. 마지막으로 두 개의 엔티티 사이의 관계를 나타내는 새로운 Model 클래스 'Relation'을 만들도록 선택했습니다. 더 많은 협회였습니다. 저는 첫 디자인이 부적절하다는 사실을 고백합니다.
은 (당신이 집계하는 데이터의 많은이있는 경우 물론, 이것은에만 유효) : http://stackoverflow.com/questions/13930573/ndb-modelling-one 반복 키 프로퍼티와 외래 키 – deweyredman