And you need multiple queries to get all the Shapes that belong to the Page.
When we make a new Shape subclass we have to update the retrieval in
the Page too.

I just read about the entity-index-limit at
http://code.google.com/appengine/docs/datastore/queriesandindexes.html
When a Page has a lot of shapes (many items in the ListProperty) it could
happen that the entity is not stored because we hit this limit.

A possible solution is that we give the Shape a Reference to an implementation.
The implementation attribute points to a Line or Circle object.
---------------
class ShapeProxy(db.Model):
 onPage = db.ReferenceProperty(Page,collection_name="shapes",required=True)
 implementation = db.ReferenceProperty(collection_name="imp",required=True)
 def draw(self):
   return self.implementation.draw()

class Shape(db.Model):
 color  = db.StringProperty(required=True,default='black')
 def draw(self):
   return ''

# creation has to change too
---------------
When retrieving shapes it might be better to collect the keys of the
implementations first,
then do a dg.get(shapeKeys) and then draw the Shapes.
For this method we have 2 objects for every Shape that we use.

Is there another method to prevent this entity-index-limit?

2008/10/13 djidjadji <[EMAIL PROTECTED]>:
> But this will give you VERY large entity groups and that is not very
> efficient for updates (transactions)
>
> 2008/10/13 yejun <[EMAIL PROTECTED]>:
>>
>> Using parent = or ancestor is probably faster because the locality of
>> datastore.
>>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to