After reading the comments (I may be late though, it's 2005), I noticed that my implementation is sort of abstract/general and sort of NOT.
I'm using PHP4 so I had to 'carve' some OOP in my classes. My DataObject is a base-class for all other DataObject's. I only created subclasses for the relation tables to make them more flexible in showing their rows. Instead of showing PK values, they refer to the corresponding table and show the readable values.
I totally see Evil3's opinion but in my case, the subclasses are really for specific table-related stuff. Don't make DO's for each table unless you have to ... or have a better solution.