[Zope] Pointers in the ZODB
Bjorn Stabell
bjorn@exoweb.net
Thu, 4 Oct 2001 09:46:42 +0800
Hi all,
I need to store pointers in the ZODB. Pretty basic requirement. Two
questions:
1. Is there any thing to watch out for by storing the same object in two
different locations in the ZODB? For example:
bigobject =3D BigObject(id)
some_path._setObject('id1', bigobject)
some_other_path._setObject('id2', bigobject)
Seems to work fine, but what does it actually mean? The same object
stored twice in the ZODB, with different acquisition/persistence
wrappers around it?
2. Given the multitude of ways you can access objects in Zope, the
semantics of pointers are not very clear: do you store the pointer, or a
symbolic link (the path) to the object. In the latter case, how do you
write a wrapper that just delegates all to the other object?
(Overriding __getattr__ is not recommended, and __getitem__ isn't
enough.) All in all, the choices seem to be:
- level: URL redirect or object link
- type: symbolic or hard
- acqusition:
first remote, then local
first local, then remote
remote, then none
local, then none
none
Am I misunderstanding something?
Anyone written a multipurpose "pointer" or link class that allows you to
configure all of these run-time?
Regards,
--=20
Bjorn