数据库设计建议

时间:2018-11-12 14:20:16

标签: sql database-design relational-database

在以下情况下,我正在寻找最佳的数据库解决方案。

请考虑我有一个父表[P1],该表具有列[ID |学生证| StudentName]和从P1派生的多个子表,假设C1,C2,C3 ... [增长],其中每个表的组合主键都是[StudentID,ReportingDate]以及该表各自的其他事实数据。

我有一个用例,如果给定了StudentID,我需要一个给定键的所有表的记录列表,格式为[表名|学生证| ReportingDate]。

示例输入:

搜索STD1

示例输出:

Table Name| Searched Key | ReportingDate
C1 | STD1 | Date1
C3 | STD1 | Date1
C1 | STD1 | Date2

子表是在不同日期根据StudentID生成的不同报告,并且会不断增长。

我无法加入越来越多的Child桌子。可以说我有30-40个子表。

我们对此有解决方案吗?

1 个答案:

答案 0 :(得分:0)

更多数据一定不能导致更多表,而要导致数据库中更多行。

也就是说,您可能应该有一个学生和一个student_report表。然后将一些列添加到student_report_table中,以便能够反映不同的报告。最简单的形式就是唯一的报告类型:

  • 学生(student_id,姓名,...)
  • report_type(report_type_id,说明)
  • 学生报告(学生ID,报告日期,报告类型ID ...)