+++ DELETE

<code type="php">
/** 
 * lets presume $users contains a collection of users
 * each having 0-1 email and 0-* phonenumbers
 */
$users->delete();
/**
 * On connection drivers other than mysql doctrine would now perform three queries
 * regardless of how many users, emails and phonenumbers there are
 *
 * the queries would look something like:
 * DELETE FROM entity WHERE entity.id IN (1,2,3, ... ,15)
 * DELETE FROM phonenumber WHERE phonenumber.id IN (4,6,7,8)
 * DELETE FROM email WHERE email.id IN (1,2, ... ,10)
 *
 * On mysql doctrine is EVEN SMARTER! Now it would perform only one query!
 * the query would look like:
 * DELETE entity, email, phonenumber FROM entity 
 * LEFT JOIN phonenumber ON entity.id = phonenumber.entity_id, email
 * WHERE (entity.email_id = email.id) && (entity.id IN(4, 5, 6, 7, 8, 9, 10, 11)) && (entity.type = 0)
 */
</code>


+++ INSERT

<code type="php">
// lets presume $users contains a collection of new users
// each having 0-1 email and 0-* phonenumbers
$users->save();
/**
 * now doctrine would perform prepared queries in the following order:
 *
 * first the emails since every user needs to get the primary key of their newly created email
 * INSERT INTO email (address) VALUES (:address)
 * INSERT INTO email (address) VALUES (:address)
 * INSERT INTO email (address) VALUES (:address)
 * 
 * then the users
 * INSERT INTO entity (name,email_id) VALUES (:name,:email_id)
 * INSERT INTO entity (name,email_id) VALUES (:name,:email_id)
 * INSERT INTO entity (name,email_id) VALUES (:name,:email_id)
 *
 * and at last the phonenumbers since they need the primary keys of the newly created users
 * INSERT INTO phonenumber (phonenumber,entity_id) VALUES (:phonenumber,:entity_id)
 * INSERT INTO phonenumber (phonenumber,entity_id) VALUES (:phonenumber,:entity_id)
 * INSERT INTO phonenumber (phonenumber,entity_id) VALUES (:phonenumber,:entity_id)
 * INSERT INTO phonenumber (phonenumber,entity_id) VALUES (:phonenumber,:entity_id)
 * INSERT INTO phonenumber (phonenumber,entity_id) VALUES (:phonenumber,:entity_id)
 *
 * These operations are considerably fast, since many databases perform multiple
 * prepared queries very rapidly
 */
</code>


+++ UPDATE
