J'ai une question de conception est BlobReferenceProperty essentiellement ReferenceProperty? Dois-je faire prefetch (suggéré par Nick http://blog.notdot.net/2010/01/ReferenceProperty-prefetching-in-App-Engine) comme pour ReferenceProperty?BlobReferenceProperty et ReferenceProperty modèle design
Actuellement, j'ai cette conception:
class Entry(db.Model):
creator = db.ReferenceProperty(User, required=True, collection_name='entries')
created_at = db.DateTimeProperty(auto_now_add=True)
# image
image_id = db.StringProperty() # key_name for Image
image_url = db.LinkProperty(indexed=False)
width = db.IntegerProperty(default=0, indexed=False)
height = db.IntegerProperty(default=0, indexed=False)
class Image(db.Model):
created_at = properties.DateTimeProperty(auto_now_add=True)
blob = blobstore.BlobReferenceProperty(required=True)
filename = db.StringProperty(indexed=False)
published = db.BooleanProperty(default=False, indexed=True)
width = db.IntegerProperty(default=0, indexed=False)
height = db.IntegerProperty(default=0, indexed=False)
Serait-ce mieux ou pire? J'ai déplacé le blob à l'entrée à la place.
class Entry(db.Model):
creator = db.ReferenceProperty(User, required=True, collection_name='entries')
created_at = db.DateTimeProperty(auto_now_add=True)
# image
image_blob = blobstore.BlobReferenceProperty(required=False)
filename = db.StringProperty(indexed=False)
image_id = db.StringProperty()
image_url = db.LinkProperty(indexed=False)
width = db.IntegerProperty(default=0, indexed=False)
height = db.IntegerProperty(default=0, indexed=False)
Merci.
Ce n'est pas techniquement vrai. Le BlobKey stocké sur le BlobReferenceProperty pointe en fait vers une Entité BlobInfo qui n'est pas directement dans le blobstore. BlobInfo est juste une entité de banque de données régulière qui contient des informations sur votre objet blob et fournit une API pour le récupérer. La réponse est toujours la même que, peut encore pré-charger le BlobKey qui peut être utile pour passer l'étape BlobInfo lorsque vous n'en avez pas besoin. –