I've been developing database oriented applications for about 10 years, using zope with Relation DDBB for one year and a half, and just one year using Zope with ZODB in my applications. At this point, I can see a lot of advantatges of use ZODB with Zope, but there are some points where the relational model was more useful to me. In fact, the main problem in my applications are relationships. In a relational world, you can specify relations using foreign keys, and also say what action should be done on delete or on update (no action, set null, restrict, cascade, set default). This is very useful developing business oriented applications. Using ZODB some of these relations can be done using containment: If A contains B, this is the same of having a relation "1->N on delete cascade"
Another case is to use a Relation Manager. I've implemented and object Relation that is deleted when some of the two related objects are (using manage_beforeDelete). This is the same that a relation "M -> N on delete cascade"
The third case I've been implemented, and the one giving me more problems, is to have a property referencing another object (path or UID). If the referenced object is dropped, the referer has problems
I work a lot with ZCatalogs, using one catalog for each meta_type of objects, so for me catalogs are the most similar thing to a "Table". I'm thinking that could be very useful to implement some basic referencial integrity in ZCatalogs. Just being able to define primary keys and some simple types of foreign keys we will have on Zope the best of two worlds. Seeing code of ZCatalog product it seems not to be very difficult to implement, adding some validations on catalog_object and uncatalog_object methods. Of course, all these should be optional. I no Primary Keys neither Foreign Keys are defined, catalogs should work exactly like until now.
What do you think about this ? If nobody convince me that this is a stupid work, I will try to implement it. In this case, what's the better way to provide the code ? A patch for ZCatalog ? Or a new Product IntegrityZCatalog inheriting from ZCatalog ?
Zope-Dev maillist - [EMAIL PROTECTED]
** No cross posts or HTML encoding! **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce