0

というアプリケーションがあるとReportGeneratorします。ユーザーは、フィールドの数とフィールドの値を入力できます。たとえば、 を持つことができるjobApplicationReportので、次のようにいくつかのフィールドを定義できます: jobTitle, expectedSalary.

したがって、DB には次のようなものがあります: テーブル名:UserReportとこれらのフィールド: idtitlefields

そして、データは次のようになります: 1, jobApplicationReport,jobTitle,expectedSalary

また、UserReportDataフィールドがあり、iduserReportIdvalue データは次のようになります: 11jobTitle:programmer,expectedSalary:200K

21jobTitle:projectManager,expectedSalary:400K

したがって、私の質問は、SQL データベースを十分に活用できず、インデックスを使用してパフォーマンスを向上させることができないため、 のvalueフィールドは非常にばかげているように見えるということです。UserReportData

ユーザーが新しいレポートを追加するときに、もう1つのテーブルを作成できるという別の解決策があると思います。この例では、抽象UserReportDataテーブルはなく、代わりにUserReportData_jobApplicationReportテーブルがあります。そして、私が望むだけのフィールドを持っています。

しかし、1 人のユーザーが多くのレポートを持っている可能性があるため、私のデータベースにはたくさんのテーブルがあります。この問題に対処するための解決策はありますか? ありがとう。

4

1 に答える 1

0

report_fields: report_id,field_id,value とフィールド用に追加のテーブルを作成できます: field_id,name

したがって、フィールドには次のものがあります。

1, jobTitle
2, expectedSalary

そしてあなたのreport_fields:

1,1,programmer
1,2,200k
2,1,projectManager
2,1,400k
于 2012-10-09T11:07:53.363 に答える