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?