title: SQL: Designing tables for storing agendas/schedule
body: <p>I'm trying to create a weekly (Monday - Sunday) schedule/agenda, similar to Google Calendar, using mySQL where users are able to fill out and display a schedule for what tasks they have at some day during some hour interval. For example a user task could store in the schedule as  </p>
  
  <p>Username | Day | Time | Task</p>
  
  <p>Jimbob, Tuesday, 13:00, Eat super delicious spaghetti.</p>
  
  <p>I'm wondering what is the best way to design the tables?</p>
  
  <p>I could create a table for every day of the week, or have one big table that will store info for any day of the week. But what if I have a million users, would one big table be a performance issue?</p>
  
  <p>Also, for the field of the tables I was planning to make one row store only one task for each hour, but I could also store all the tasks for each hour of the day. The latter could result in a lot of null values and take up more memory, but if the users fill out a lot of the calendar it seems like it could reduce a lot of rows, and redundant username entries. It also makes it easier to print out the schedule. Any thoughts?</p>
  
  <p>Username | Hour | Task|    </p>
  
  <p>or   </p>
  
  <p>Username | 12am  |Task1 | 1am | Task2 | 2am ....</p>
  
  <p>Thanks.</p>