我正在构建一个 MySQL 驱动的网站,该网站将分析由各种客户分发的客户调查。一般来说,这些调查的结构相当一致,我们客户的大部分数据都可以简化为相同的标准化数据库结构。
然而,每个客户最终都会不可避免地为他们的客户提供高度具体的人口统计问题,这些问题与我们的其他每个客户都无关。例如,虽然我们所有的客户都会问客户满意度,但只有我们的汽车客户会问客户是否知道如何驾驶手动变速器。
到目前为止,我一直在将respondents
所有一般人口统计信息的列添加到表中,其中混入了很多default null
'。但是,随着我们添加更多客户,很明显这最终会产生大量列几乎总是为空。
有没有办法始终如一地做到这一点?我宁愿在表中保留尽可能多的标准化数据,respondents
因为我们的导入脚本已经为该表编写了。我的一个想法是构建一个respondent_supplemental_demographic_info
表,其中包含列 response_id、人口统计字段、人口统计值(因此手动传输示例可能变为:'ID999'、'can_drive_manual_indicator'、true)。这可以容纳无限数量的人口统计字段,但从处理和编程的角度来看,使用起来会非常痛苦。有任何想法吗?