I'm designing a schema for an event registration system which will involve students from schools across many different regions. My main problem is the method by which I store school names in the database.
Given that students will be registering separately, it's highly likely that spelling variations of the same school name will accumulate over time. I'd like an easy way to purge these, especially as one of the statistics we'd like to gather would be the number of schools and institutions that register for the event.
I'm debating between storing school_name
as an extra column in a Participant
table, or storing a school_id
as a foreign key referencing a School
table (can't think of any other way). Which one would prove more efficient when it comes to utilization of storage, ease of purging duplicate data, and other factors?