title: Redux state shape for an entity that has list views and detail views
body: <p>For my entity <code>Car</code>, I have a list view that fetches all the cars from the API and renders their <code>make</code> and <code>year</code>. However, the API <em>only</em> returns these fields on the list view page. When the user clicks on one of the list items, they then go to the detail page for that car, where they get more information, such as <code>description</code>, <code>color</code>, <code>price</code>, etc.</p>
  
  <p>What is the recommended approach for managing this data in Redux? One possibility is that there exists a single <code>state.cars</code> property, under which all car data exists, e.g.</p>
  
  <pre><code>state.cars = {
    1: {
      id: 1,
      make: "Toyota",
      year: 1994
      color: "Red"
      ...
    },
    2: ...
  }
  </code></pre>
  
  <p>In the above example, <code>1</code> and <code>2</code> are the ids from the database. This seems like the logical way to go, but how do I manage the fact that on the list view I don't get all the data I ultimately want for each car? Would my state initially just contain the <code>make</code> and <code>year</code> for each car, and then I'd modify those individual entries each time a user goes to a detail page?</p>
  
  <p>For example, on the list view page, it would look like:</p>
  
  <pre><code>state.cars = {
    1: {
      id: 1,
      make: "Toyota",
      year: 1994
    },
    2: {
      id: 2,
      make: "Honda",
      year: 1994
    },
    ...
  }
  </code></pre>
  
  <p>And then if the user clicked on the second item, the state would end up looking like:</p>
  
  <pre><code>state.cars = {
    1: {
      id: 1,
      make: "Toyota",
      year: 1994
    },
    2: {
      id: 2,
      make: "Honda",
      year: 1994,
      color: "Blue",
      description: "Awesome car!",
      price: 9500
    },
    ...
  }
  </code></pre>
  
  <p>This seems like a good approach because it maintains a single source of truth for the car data. The downside is that now the data I have available for each car might be different. This will add greater complexity to my components, and probably create some Flow type pain.</p>
  
  <p>The alternative would be to have separate pieces of state for the list view and detail data. But this would result in duplicate data in the store.</p>
  
  <p>Is there a recommended approach for handling this type of problem?</p>