title: What is the best database structure In this scenario?
body: <p>I'm working on a program in C# that will eventually read and write data to and from a database. I was thinking of using Microsoft SQL Server because from what I read, connectivity with C# is easy and efficient. However, I am unsure as to how to set up and structure the database with the information I will need it to store.</p>
  
  <p>The data involves a unique person that has a series of intervals which have a series of properties. For example, a person "Bob" who has been in the system for six months will have two intervals, one for three months and then one for six months. The three months interval will have, for example, a list of hobbies that the person does, amongst other things, that may differ from the six months interval. Programmatically, I can easily represent these things using dictionaries, lists, and ADTs, but converting that into a database is hard to wrap my head around.</p>
  
  <p>The only way I can think of doing it is to have each value in each list as a separate record, but I am skeptical about this approach. I feel like it isn't the best way to do things. </p>
  
  <p>So for example, I'd have a person table that would look like this:</p>
  
  <pre><code>Name, Age, DOB
  </code></pre>
  
  <p>And then an Interval table that would look like this:</p>
  
  <pre><code>Name, Three Months
  Name, Six Months
  </code></pre>
  
  <p>And then a hobbies table like this:</p>
  
  <pre><code>Name, Three Months, Bike Riding
  Name, Three Months, Coding
  Name, Six Months, Bike Riding
  Name, Six Months, Coding
  Name, Six Months, Basketball
  </code></pre>
  
  <p>I feel like this will grow way too quickly, especially when there's an expected one thousand plus different people all with their own intervals.</p>
  
  <p>If anyone can shed some of their wisdom or personal experiences, it would be very much appreciated! Thank you!</p>