Guillaume ORIOL wrote:
Thank you for your advice.

I am using MySQL 5 with InnoDB engine which implements cascade deletes as well as triggers. I have to confess I am not very comfortable with triggers. And the logic behind the cascade delete is fairly complex in my application. Therefore I tried to implement it with php code and ZF. Now, I know I have to learn more about triggers...

This is the best place to put database specific business rules, especially if you don't see yourself needing database platform independent code. One of the things to keep in mind when you start implementing your business logic in the database itself is that now you'll have two codebases you need to also maintain.. the application code, and also the database code.

That brings me to the point below...

But let me ask one question: as a full implementation is not possible (or at least very complex), why not to remove it completely from Zend_Db? I find it inconsistent as it is.


... see below ...


The reasons to use MyISAM are dwindling. It used to be faster than
InnoDB, but this is less and less true now that the performance of the
InnoDB plugin storage engine has improved so much. If you want to use
the FULLTEXT index which only supports MyISAM, other options like Solr
and Sphinx are available and probably better.

While I whole-heartedly agree, MyISAM still has critical mass when it comes to marriage of Mysql+PHP. In fact, some people STILL use the mysql_ set of functions.

That said, even though database platforms are catching up when it comes to features that enhance the ability to write business specific rules, we still have a very popular lowest common denominator. And if database platform independent code is a goal of yours, then relying on FK constraints and triggers might not be an option.

In this case, I think this feature-set is pretty important. This is why I supplied a patch that I had hoped more people would have looked at. If it meets community standards, I'd be OK with this going into ZF. In the mean time, you are free to apply this patch and/or extends Zend_Db to fulfill this need.

-ralph

Reply via email to