Я хочу включить что-то вроде отношения «один ко многим» между текстовым объектом и BLOB-объектами, чтобы у текстового объекта («статья» или аналогично) было много изображений и / или видео. Я вижу два способа сделать это, когда первый использует список больших двоичных объектов в качестве переменной экземпляра. Будет ли это работать?
class A(search.SearchableModel):
blobs = db.ListProperty(blobstore.BlobReferenceProperty())
Преимущества: всего один класс. Читаемые и легко получить и установить данные.
Недостатки: не хватает дополнительной информации для блобов, например если я хочу пометить блоб описательными словами, мне все равно нужны два класса:
class A(search.SearchableModel):
...
class B(db.Model):
reference=db.ReferenceProperty(A,collection_name='matched_blobs',verbose_name="Title")
blob = blobstore.BlobReferenceProperty()
Последующий пример имеет недостаток, поскольку он требует ссылочного свойства и вводит 2 класса, где проблема может быть решена только с помощью класса A, как в первом примере. Преимущество более позднего решения состоит в том, что оно четко задокументировано, в то время как свойство списка для свойств blobreference отсутствует, а более позднее решение, которое я уже реализовал, и теперь я думаю об использовании списка больших двоичных объектов вместо ссылочной коллекции. Имеет ли это значение или оба будут работать одинаково хорошо? Можете ли вы порекомендовать, какой способ выбрать, если какой-либо из этих или других?
Спасибо