というアプリケーションがあるとReportGeneratorします。ユーザーは、フィールドの数とフィールドの値を入力できます。たとえば、 を持つことができるjobApplicationReportので、次のようにいくつかのフィールドを定義できます: jobTitle, expectedSalary.
したがって、DB には次のようなものがあります: テーブル名:UserReportとこれらのフィールド: id、title、fields。
そして、データは次のようになります:
1, jobApplicationReport,jobTitle,expectedSalary
また、UserReportDataフィールドがあり、id、userReportId、value
データは次のようになります:
1、1、jobTitle:programmer,expectedSalary:200K
2、1、jobTitle:projectManager,expectedSalary:400K
したがって、私の質問は、SQL データベースを十分に活用できず、インデックスを使用してパフォーマンスを向上させることができないため、 のvalueフィールドは非常にばかげているように見えるということです。UserReportData
ユーザーが新しいレポートを追加するときに、もう1つのテーブルを作成できるという別の解決策があると思います。この例では、抽象UserReportDataテーブルはなく、代わりにUserReportData_jobApplicationReportテーブルがあります。そして、私が望むだけのフィールドを持っています。
しかし、1 人のユーザーが多くのレポートを持っている可能性があるため、私のデータベースにはたくさんのテーブルがあります。この問題に対処するための解決策はありますか? ありがとう。