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