Certainly we want to avoid processing unnecessary table definitions with every request.
It seems to me that the simplest solution is something like this:
if request.controller=='foo':
db.define_table('foo', Field...) # main table
db.define_table('foo_one_to_many', Field(foo_id, db.foo...)...)
...
What is the advantage of the no models architecture over this?

