At 11:07 PM 5/8/03 +0200, roche@upfrontsystems.co.za wrote:
We finally have a proposal out for ZODB relationships. This proposal presents an API for relationships, summarises ideas and contributions from a lot of people and was fuelled by the recent discussions about relationships on Zope3-dev and Zope-dev.
http://www.zope.org/Members/upfront/ZODBRelationships
Your comments would be appreciated.
Issues: 1. "Global relationship repository" has no use cases, and smells like trouble. Why not just explicitly store the Relationship() somewhere? After all, every RelationshipView will have a reference to it. (For ZODB4, a persistent module might be the natural place to put the "official" reference to the Relationship(); for ZODB3, just hang them off the root with suitably unique keys.) 2. There is no directionality to the associations; this doesn't work for hierarchies or graphs. E.g. think 'parent_child = Relationship()'. That won't work. All in all, I don't see any reason to make this part of ZODB's API or add special repositories to support it. However, like PersistentDict or BTree, relationships might be a nice tool to have available in the ZODB library. A final comment... Once this takes directionality into consideration, you might consider calling it an 'Association' rather than a 'Relationship', as it would then largely meet the MOF and UML semantics of an "Association". That is, an association is a collection of directed links between objects. It would then make sense to refer to refer to the 'RelationshipView' as an 'AssociationEnd'.