我想启用文本对象和Blob之间的一对多关系,以便文本对象(“文章”或类似内容)具有许多图像和/或视频。我看到有两种方法,其中第一种是使用blob列表作为实例变量。能行吗
class A(search.SearchableModel): blobs = db.ListProperty(blobstore.BlobReferenceProperty())
优点:仅上一堂课。可读且易于获取和设置数据。缺点:缺少有关Blob的额外信息,例如,如果我想用描述性单词标记Blob,则仍然需要两个类:
class A(search.SearchableModel): ... class B(db.Model): reference=db.ReferenceProperty(A,collection_name='matched_blobs',verbose_name="Title") blob = blobstore.BlobReferenceProperty()
后面的示例有一个缺点,因为它需要引用属性,并且引入了两个类,可以像第一个示例中那样仅使用类A来解决问题。后一种解决方案的优势在于,它清楚地记录了文档,而没有blobreferenceproperties的列表属性,并且我已经实现了后一种解决方案,现在我正在考虑使用blob列表而不是引用的集合。是重要的还是两者都可以很好地工作?您可以建议选择其中一种还是另一种方式?
谢谢
App Engine实际上在其文档中对此发表了一篇文章:http : //code.google.com/appengine/articles/modeling.html