title: when one-to-one relation should I store everything in object or in dedicated storage?
body: <p>Assume we have class <code>Car</code> which MAIN field is called <code>VIN</code> (Vehicle Identification Number). VIN gives us a lot of information such us:</p>
  
  <ul>
  <li>owner</li>
  <li>place of registration</li>
  <li>country of production</li>
  <li>year of production</li>
  <li>color</li>
  <li>engine type</li>
  <li>etc. etc</li>
  </ul>
  
  <p>I can continue and add more information:</p>
  
  <ul>
  <li>last known GPS coordinates</li>
  <li>fine list</li>
  <li>is theft (boolean)</li>
  <li>etc. etc.</li>
  </ul>
  
  <p>It seems reasonable to store some of information (for example year of production and engine type) right inside <code>Car</code> object. However storing all this information right inside <code>Car</code> object will make it too complicated, "overloaded" and hard to manage. Moreover while application evolves I can add more and more information.</p>
  
  <p>So where is the border? What should be stored inside <code>Car</code> object and what should be stored outside in something like <code>Dictionary&lt;Car, GPSCoordinates&gt;</code></p>
  
  <p>I think that probably I should store "static" data inside <code>Car</code> object so making it <code>immutable</code>. And store "dynamic" data in special storages.</p>