oodb philosophics ;) was: Re: [Zope-dev] Experiments with ORMapping

Shane Hathaway shane@digicool.com
Mon, 14 May 2001 10:42:17 -0400


Joachim Werner wrote:
> 
> > Probably I'm daft because it is Friday night, but AFAIK ZODB and most
> OODB's
> > store an object only once, keyed by its object id. The rest is just
> references
> > through that oid, so objects that belong to more than one container can be
> > added to all these containers and n:m relations are implemented by having
> a
> > list of objects on both sides.
> 
> Yes, but these references (let's call them "symlinks" ...) are not in the
> standard Zope. Of course it should be easy to do these things, but except
> for this from Shane I haven't seen anything so far:
> http://www.zope.org/Members/hathawsh/Symlink/index_html

Actually I was referring to the OODB-equivalent of "hard links".  It's
only possible from Python products / external methods / filesystem
scripts / Zope core code, but here's how you do it:

ob = some_folder.some_child
some_other_folder.some_child = ob

In other words, if you just assign an object to have multiple parents
then it will "just work".  Changes to the object will appear to occur in
both places, but really they're only occurring in one place.  This
behavior is fully persistent, works over ZEO, and ZODB won't even see
there's anything unusual.

> P.S.: Shane, have you developed Symlinks any further? I think they could be
> extremely useful. I tried out the initial release and liked it, except for
> the fact that the symlinks looked EXACTLY like real ones, so they can be
> very irritating ...

I'm not sure what to do with symlinks.  How should security be applied? 
How are they most useful?

It's neat to see it works, though. :-)

Shane