[Zope-dev] Experiments with ORMapping

Shane Hathaway shane@digicool.com
Fri, 11 May 2001 17:42:23 -0400


"Phillip J. Eby" wrote:
> 
> At 11:01 AM 5/11/01 -0400, Shane Hathaway wrote:
> >Joachim Werner wrote:
> > >
> > > The current design plans of SmartObjects are mainly based on the assumption
> > > that we will not be able to change Zope itself. This is not a dogma for us,
> > > however. I guess doing OR-mapping in the Zope core would be fine with
> > us ;-)
> >
> >FYI by replacing I don't mean changing anything in the Zope core.  I
> >mean using a different class in place of Connection, which you can do
> >just by creating a custom_zodb.py.
> 
> Hm.  So you're suggesting creation of a Storage class that returns a
> special root object which emulates the standard ZODB root
> PersistentMapping, and contains another object that emulates a folder, with
> a bunch of other foldoids that are actually tables, or something of that
> sort?  And maybe exposes some query methods ala ZCatalog?

No.  The suggestion was to return something that implements the DB
interface but doesn't use Connection.py to do it.

> I'm not quite clear on how exactly you suggest mapping from RDMBS ->
> ZODB.  There's a *significant* (IMHO) impedance mismatch between ZODB's
> arbitrarily identified variably structured single records and SQL's
> content-identified fixed-structure record sets.  This is what application
> frameworks/toolkits (such as your own DBAPI product) are needed for.

If you implement this at the Storage level, yes, there is a major
mismatch.  But at the Connection level it makes a lot of sense. 
Connection basically exposes a pile of pickles as objects; an OR mapping
exposes a complex schema as objects.

I think that understanding will change the rest of your response. :-)

Shane