title: When to split up models into multiple database tables?
body: <p>I'm working with Ruby on Rails, but this question I think is broader than that and applies to database design generally.</p>
  
  <p>When is it a good idea to split a single model up into multiple tables?  For example, assume I have a User model, and the number of fields in the model is really starting to add up.  For example, the User can enter his website, his birthday, his time zone, his etc etc.</p>
  
  <p>Is there any advantage or disadvantage to splitting up the model, such that maybe the User table only has basic info like login and email, and then there is another table that every User has that is something like UserInfo, and another that is UserPermissions, and another that is UserPrivacySettings or something like that?</p>
  
  <p>Edit: To add additional gloss on this, most of the fields are rarely accessed, except on pages specific to them.  For example, things like birthday are only ever accessed if someone clicks through to a User's profile.  Furthermore, some of the fields (which are rarely accessed) have the potential to be extremely large.  Most of the fields have the potential to be either set to blank or nil.</p>