No not at all :)<p>Slavishly mapping a row in a database table to an application object is bad. Off the top of my head, an example could be a Product, where the tables are something like:<p><pre><code>    product - main product details
    product_option - options (e.g. Size, Colour)
    product_option_values - values for that specific option instance
</code></pre>
In my application I don&#x27;t care about the database structure - whether the tables are normalised or storing everything in one huge serialized blob (or CouchDB, or ElasticSearch or... you get the picture). Instead you want to get the options and save changes straight back when editing the product.<p>Now this is where my example breaks down as the Product needs to &#x27;know&#x27; about what options are available (either to provide a nice API or to know what to display in the UI) and my schema doesn&#x27;t allow for that (save a Product.getAllOptions() method) but I&#x27;ll leave that as an exercise for my reader :)