I would like to read about your different strategies. For example, if you have a database with this tables:

* users
* posts
* comments

Do you use a only class for the database operations or do you use DB operations in every class (User, Post, Comment...)?

My strategy is to have these PHP classes:

* Item
* User extends Item
* Post extends Item
* Comment extends Item
* ItemSet implements Iterator
* UserSet implements Iterator
* etc...

Almost all the sql querying is done in Item class, but in User, Post and Comment class, the queries are built to be sent to Item class where the database connection is done and the query is executed.