我正在为一个活动注册系统设计一个方案,该系统将涉及来自不同地区学校的学生。我的主要问题是在数据库中存储学校名称的方法。
考虑到学生将单独注册,同一学校名称的拼写变化很可能会随着时间的推移而累积。我想要一个简单的方法来清除这些,特别是因为我们希望收集的一个统计数字是注册参加活动的学校和机构的数量。
我在争论是将school_name
存储为Participant
表中的额外列,还是将school_id
存储为引用School
表的外键(想不出其他方法)。当涉及到存储利用率、清除重复数据的易用性和其他因素时,哪一个更有效?
最佳答案
如果你想避免犯错误的可能性,你可以提供一个列表(是的,可能是很大的)现有学校名称。如果他们选了一个,你就保存学校的身份证。因为您可能无法预测所有学校,所以可以为“其他”学校提供一个自由格式的文本字段,并将其作为文本存储在参与者记录中。你可能不得不定期进行协调,将新学校加入学校名单,或者将参与者的“其他”学校与现有学校联系起来(也许是在名单中,但他们没有看到,或者他们错拼了)。
关于database - 在数据库架构中存储学校名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3503713/