[Zope] Internal reference between objects saved in ZODB gets lost?
Max M
maxmcorp@worldonline.dk
Mon, 3 Sep 2001 21:56:44 +0200
If I create two objects and saves them with 'setObject' any references
between objects is lost. Is that true?
Simple stoopid non-working code example::
class test:
def __init__(self, id, otherObject=None):
self.id = id
self.otherObject= otherObject
class table(ObjectManager):
def __init__(self):
object1 = test('1')
object2 = test('2', object1)
self._setObject('1')
self._setObject('2', object2)
Do I have to save a reference to another persistent object as an
objectManager id instead?
Like this:
class test:
def __init__(self, id, otherObject=None):
self.id = id
self.otherObject= otherObject
class table(ObjectManager):
def __init__(self):
object1 = test('1')
object2 = test('2', '1')
self._setObject('1')
self._setObject('2', object2)
Saving the reference directly is so much easier. But apparantly I get into
trouble when I try to.
I could save all my data structure in a dict or somesuch structure. This
keeps the references intact. But I guess that i will get a nasty growth in
Data.fs whenever the object is changed. At least until a packing of the
database.
Something like::
number of objects * size pr object * times changed
This could probebly be a real problem if the object had a size of 500 MBs in
all and lots of changes.
Do I understand this correctly?
regards Max M
Max M. W. Rasmussen, Denmark. New Media Director
private: maxmcorp@worldonline.dk work: maxm@normik.dk
-----------------------------------------------------
Shipping software is an unnatural act