さまざまなクライアントから配布された顧客調査を分析する MySQL 駆動の Web サイトを構築しています。一般に、これらの調査はかなり一貫して構成されており、クライアントのデータのほとんどは同じ正規化されたデータベース構造に縮小できます。
しかし、すべてのクライアントは必然的に、他のすべてのクライアントには関係のない非常に具体的な人口統計学的質問を顧客に含めることになります. たとえば、すべてのクライアントは顧客満足度について質問しますが、自動車のクライアントだけが、顧客がマニュアル トランスミッションの運転方法を知っているかどうかを尋ねます。
これまで、respondents
すべての一般的な人口統計情報のテーブルに列を追加してきましたが、多くdefault null
の が混在しています。しかし、クライアントを追加すると、膨大な数の列が作成されることは明らかです。ほとんど常に null です。
これを一貫して行う方法はありますか?respondents
インポート スクリプトはテーブル用に既に作成されているため、できるだけ多くの標準化されたデータをテーブルに保持したいと思います。私の考えの 1 つはrespondent_supplemental_demographic_info
、response_id、demographic_field、demographic_value の列を持つテーブルを作成することです (手動送信の例は、'ID999'、'can_drive_manual_indicator'、true になる可能性があります)。これは無限の数の demographic_fields を保持できますが、処理とプログラミングの両方の観点から作業するのは非常に困難です。何か案は?