title: How to create a copy of a database per each new user signup
body: <p>I have a 'master' database created with postgres, using django and react for everything else, it's got about 1000 different objects in it. When a new user signs up to my website, I want to give them a copy of the master database, in which they could crud all they want but not affect the master. If they are not logged in, then they can see the master, if they are logged in than they see their personal copy. </p>
  
  <p>This question is more around the theory and best practices. Storage size, speed, UI considered.. Does anyone have tips on how i should go about this?</p>
  
  <p>My first thought is to create a parent object in the database, one object for the master, and one object each new user's database copy. But the database could grow huge really fast. </p>
  
  <p>This is my first time experimenting with this so any details you want to shed would be extremely helpful. </p>
  
  <p>current structure</p>
  
  <pre class="lang-py prettyprint-override"><code>all_items = {
    {
     "item": name,
     "detail: ['one', 'two', 'three']
    },
    {
     "item": second name,
     "detail: ['four', 'five', 'six']
    }
  }
  </code></pre>
  
  <p>Possible structure</p>
  
  <pre class="lang-py prettyprint-override"><code>database={
  {master : all_items = {
    {
     "item": name,
     "detail: ['one', 'two', 'three']
    },
    {
     "item": second name,
     "detail: ['four', 'five', 'six']
    }
  }  
  },  
  
  {new user : all_items = {
    {
     "item": name,
     "detail: ['one', 'two', 'three']
    },
    {
     "item": second name,
     "detail: ['four', 'five', 'six']
    }
  }
  
  }
  </code></pre>