title: Is it bad to have "foreign key redundancy" in a database?
body: <p>I am designing a database structure with the following simplified example:</p>
  
  <pre><code>Team has many members
  Member has many clients
  Client has many projects
  </code></pre>
  
  <p>Assuming my objects have these parameters:</p>
  
  <pre><code>Team: id, type
  Member: id, team_id, name
  Client: id, member_id, email
  Project: id, client_id
  </code></pre>
  
  <p>It's simple enough to find a project's client, or a client's member, or a member's team. </p>
  
  <p>However, assuming I want to find a project's team, for example, I have to first find a project's client, then a client's member, and then the member's team.</p>
  
  <p>I could add a team_id directly to the project, like this:</p>
  
  <pre><code>Project: id, client_id, team_id
  </code></pre>
  
  <p>I realize, however, this adds a certain level of redundancy since that information <em>is</em> available by "going up the relationship tree." Is that a bad idea?</p>
  
  <p>Thanks!</p>