我在 Oracle DB 中有一个表,比如 Student 表。StudentID 是表中的主键。我有另一列感兴趣的科目,比如列名是 Interest_SUB。一个学生可以有多个感兴趣的科目。在这种情况下,我有以下 2 个选项:
1) 将 StudentID 和 Interested_SUB 列作为复合主键。在这种情况下,例如,如果学生对 3 个科目感兴趣,那么我将在表中有 3 行,其中 (S1,SUB1) (S1,SUB2) 和 (S1,SUB3) 作为列值,所有其他列将具有相同这三行的值。
2) 有一个单独的表,其中包含 StudentId 和 Interested_SUB 列以及第一个表中的附加列,以指示学生是否对多个主题感兴趣。在这种情况下,我将为学生表中的每个学生设置一行,其中 studentId 和 SUB 为 (S1,SUB1),并且新的指示符列为“Y”。在第二个表 (S1,SUB2) & (S1,SUB3) 中。
请建议我上述哪个选项可以提高数据库的性能。
提前致谢