You could use ancestors & entity groups to maintain your threading, not sure how this would impact the overall performance but it makes querying for children easy. But, this would mean a query with the root comment as ancestor would pull back all children and all the children's children etc.. you might not want this so might want to maintain a depth count and add it to the query maybe?
Or, stick with the lexical path but use the full byte rather than decimal to store the number.. then just 2 bytes give you a max of 64k comments per depth and 200+ deep. On Oct 18, 10:07 pm, jeremy <[EMAIL PROTECTED]> wrote: > How would "you" approach storing and rendering comments in a reddit > like forum? The naive approach i think would be to store comments with > references to their parent comment, then recursively build the forum > tree by retrieving children. I'm sure that would timeout for larger > threads. > > One interesting alternative i found was > here:http://github.com/DocSavage/bloog/tree/master/models/blog.py#L137 > basically each comment stores it's "genealogy" in a string, making > comments lexically orderable. But that has a number of limitations - > the genealogy string is limited to 500 bytes so there's suddenly a > maximum thread depth, and the ids may exceed the fixed size padded > space. > > At first i thought i could solve this by using list properties to > encode the genealogy - then i realized that datastore lists have weird > set-like sorting :\ .. Not sure whether i can salvage this approach. > Can custom properties define their own sorting rules? > > Any suggestions/insights would be great. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---