title: Why is a table with too many columns a smell?
body: <p>Recently I had this discussion with some other developers about how too many columns in a table , or too many attributes on a model is a code smell . Some argue that a Model with too many Attribute is doing too many things , and should be split . 
  But what If the Model actually requires those attributes ? </p>
  
  <p>Let me take the example of a <code>users</code> table . </p>
  
  <p>A user can have 
  <code>first_name</code> , <code>last_name</code> , <code>street_name</code> , <code>city</code> , <code>state</code> , <code>age</code> , etc .
  According to the argument , I assume <code>street_name</code> , <code>city</code> and <code>state</code> should be moved into a different table . I agree that related data are grouped together this way , but if the application is querying for the user with his address as well , wont that be a more expensive operation, since they're in 2 tables now ?</p>
  
  <p>So what is the right way to model tables with a lot of attributes ?
  ( Should we also consider these cases : when
   1. the number of rows are going to be less
   2. the number of rows are going to be huge )</p>