title: Role-dependent associations
body: <p>I am working on my first real Rails app for timetracking in a company and I have run into database/model design concern. My app has a User model and a Role model which are linked together through a has_and_belongs_to_many association.</p>
  
  <p>One of the roles is the manager. A manager can have many assistants and assistants can have many managers (although typically only one). This relationship is represented through a manager_assistant_relationship expressed in the User model as:</p>
  
  <pre><code>has_many :assistants, :through =&gt; :manager_assistant_relationships
  has_many :managers, :through =&gt; :manager_assistant_relationships
  </code></pre>
  
  <p>Assistants can have many shifts (a different model representing a work shift) and managers can have many clients (another model that will be billed for the assistants' work). And more associations are coming.</p>
  
  <p>As far as I can tell the only solution is to put all these relationships in the User model, but something feels wrong about this and the User model could get bloated as roles increases and associations mount and it also seems unintuitive, because a User only has many assistants if he is a manager. I would like some advice about potential pitfalls to this approach and what alternatives I should consider.</p>
  
  <p>Would it be a good idea to subclass the User model into roles?</p>