Has anyone ever deleted from a Model that has dependent joins with
conditions, and realized that more rows got deleted than they
expected?

To give an example, let's declare 3 classes, Book Cd and
OverallFavorite.  OverallFavorite stores your prioritized rank of all
of your favorite stuff ... favorite book, cd, bike, framework,
whatever.  So, since we're joining many models to a single model, in
addition to a foreign key ID, the OverallFavorite model ALSO needs to
store which table that ID is references (classic compound key
situation).

The Book class would look like:

Book extends AppModel{
   ...
   var $hasOne = array('OverallFavorite' => array('foreignKey' =>
'model_id', 'dependent' => true, 'conditions' =>
'OverallFavorite.model_type = "Book"' );
   ...
}

What happens is, if you delete a book entry, the conditions aren't
being used.  EVERY row in OverallFavorite with the same foreignKey id
gets deleted.  If you have Cd, Book, and Framework, all with id=1 in
their tables, all three of those entries are deleted.

I ran into this yesterday, almost wrote up a new ticket ticket, and
found a 4-month old bug that was closed (not solved) with the
identical description.  I tacked on a test case to push that ticket
along, but I'm still curious about this bug.  So, my questions are:
Has anyone else had this problem before?  Is anyone EXPECTING this
delete-happy behavior to happen?  Is there some other understood
workaround for this?

Thanks all,
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to