Class design best practices
I've spent the last several hours looking through the Internet trying to find some examples of best practices for designing classes around database tables and I'm turning up with just snippets of code that show just individual SQL statements as opposed to examples of entire classes. What I'm trying to wrap my head around is how much SQL code needs to be in each class that represents a table in my database as opposed to having a base class to handle the various SQL functions (CRUD and multi-row result sets) regardless of the table. For example I have five tables in my database and I would imagine that I at least should have one class for each table and these classes will contain a property for each column in their respective table, but then how to go about laying out the code to perform all of the SQL functions. Also, what about designing around updates where let's so only one field was changed by the user. Would the update statement update all columns or is the better approach to have some way of tracking which fields were changed since the object was instatiated and only update those columns.
What I'm looking for is any example that can show best practice for designing the classes and if that would involve extending a base class for all of the various SQL operations. I already know how to make the connection and get back a result set, now I'm trying to see some class design examples.