Actually storing mini tables inside of tables could be useful for
denormalized databases (GAE) so you can avoid N+1 joins.

Robin

On Jan 23, 4:54 pm, Robin B <[email protected]> wrote:
> DICTDB could be implemented as dicts(tables) of dicts(ids) of dicts
> (attrs), so these simple databases would be pickle-able, therefore you
> could theoretically store little tables inside of regular database
> tables, and access them all with the same DAL syntax.  I am not sure
> why anyone would want to do this, but it would work.
>
> Robin
>
> On Jan 23, 2:53 pm, Robin B <[email protected]> wrote:
>
> > I was trying to show that Sessions does not actually use the query
> > interface (db(table.id==record_id).select()) in really only uses
> > get,set,del.
>
> > > > del db.sessions[0] -> clear table
>
> > > not explicit so dangerous, imagine del db.sessions[id] and id==0 by
> > > mistake? do you really want to clear the table?
>
> > Very true, this should not be exposed to the user.  But if you think
> > about it the other way,
> > the lower level driver could implement:
> > del db.sessions[0]
> > the high level dal api would call this:
> > db.sessions.clear() -> del db.sessions[0]
>
> > > > del db.sessions[id] -> drop row
>
> > > works, in trunk
>
> > > > db.sessions[0] = db.sessions(**attrs) -> insert
>
> > the high level dal api would call this:
> > db.sessions.insert(**attrs)
> > the lower level driver could implement:
> > ->rec = db.sessions[0] = db.sessions(**attrs)
> > ->if rec and getattr(rec,'id',None):
> > -> return 1
> > ->return 0
>
> > the low level table drivers (the plumbing) could expose the set:
> > __call__,__getitem__,__setitem__,__delitem__
>
> > the high level dal api (the porcelain) could expose the set:
> > insert(),clear(),...
>
> > This way you can add to the high level api without touching every
> > driver, since the high level api could call the low level driver the
> > implement the command.
>
> > Also, one could create DICTDB which is sufficient to handle sessions
> > and simple CRUD for tables (insert,fetch,update,delete,all), web2py
> > could work (sessions and CRUD) out of the box w/o having to install
> > sqlite, so new users do not need to install sqlite to try a sample
> > welcome application scaffolding.  ;)
>
> > Robin
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to