No it doesn't have to be that way. Undr no circumstances, ever, should you use a database like that. You add rows, not columns. In your case, it sounds like you need three tables: one for students, one for dates and one for payments. Each time you get a new student you add a new row to the Student table with a StudentID. Every time there is a new date you add a new row to the Date table with a DateID. Every time a student makes a payment for a date you add a row to the Payment table with the appropriate StudentID and DateID. It's these relations between tables that give relational databases their name.