假设我有一个名为 的应用程序ReportGenerator
,它允许用户输入多少个字段以及字段值。例如,他们可以有一个jobApplicationReport
,所以,他们可以定义几个这样的字段:jobTitle
, expectedSalary
.
所以,在数据库中,我会有这样的东西: 表名:UserReport
并有这些字段:id
, title
, fields
。
数据会是这样的:
1
, jobApplicationReport
,jobTitle,expectedSalary
而且,我有一个字段UserReportData
,,,,id
数据
会像这样
:,,,userReportId
value
1
1
jobTitle:programmer,expectedSalary:200K
2
, 1
,jobTitle:projectManager,expectedSalary:400K
所以,我的问题是, 中的value
字段UserReportData
似乎很愚蠢,因为它不能充分利用 SQL 数据库,也不能使用索引来提高性能。
我可能认为另一种解决方案是,当用户添加新报告时,我可以再创建一个表。在这个例子中,我可能没有抽象UserReportData
表,而是有一个UserReportData_jobApplicationReport
表。并拥有我想要的尽可能多的领域。
但是一个用户可能有很多报告,所以,我的数据库会有很多表。有什么解决方案可以解决这个问题?谢谢。