> Can you make a concrete example? It will help us improve.

The oft-cited ListProperty is a great example. Because GAE/BigTable
doesn't provide substr support, we have a couple options for a search
facility. One is to take a string, say "foobar" and tokenize it into
parts.

['fo','oo','ba','ar','foo','bar','foob','obar','fooba','oobar','foobar']

Using ListProperty, this would be a single write. Our BigTable model
looks as such:

   id name         tokens
   1  foobar       ['fo','oo','ob','ba','ar','foo','bar',...]

And a search query:

   # Get all entities where numbers contains a 6.
   results = db.GqlQuery("SELECT * FROM MyModel WHERE tokens = 'foo'")

GQL natively returns all entities contain an element in a list.

http://code.google.com/appengine/docs/python/datastore/entitiesandmodels.html#Lists

Conversely, using the oft cited IS_IN_DB pattern for web2py, we would
have 12 rows inserted, one for each token  with a column of comma
delimited foreign key ids to each full-string entity matching the
token and a bunch of code to manage the integrity across tokens/
entities instead of what is relevant in this case: tokens *per*
entity. Duplication of a token is irrelevant.

So in this scenario, which is key for the project I'm working on with
a friend, a single SELECT using GAE's API would produce the results
needed versus a series of queries to a) SELECT the token in a tokens
table, then iterate over the elements execute SELECTs on each to get
the representation.

While the ListProperty may be unique to GAE/BigTable, omitting it
removes the ability to harness GAE's power. It is also representative
of the difference between data store paradigms, I think.

Hope this helps.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to