了解数据库设计

时间:2017-04-24 18:05:35

标签: php sql database database-design pdo

我想建立一个存储考试标记的数据库。我想知道是否有更好的

  • 每个主题的表格,它将为滚动号码创建单个记录

  • 有一个标记表,每个主题的卷号都有多个记录

由于受试者的数量不固定,哪种方法会更好。

对于第一种方法,因为表格会动态地使用php创建,所以表名将成为一个变量,这意味着额外的消毒工作,

对于第二种方法,卷号将有许多重复

由于我是DBMS的新手,所以我们非常感谢任何见解。

1 个答案:

答案 0 :(得分:0)

这是选择第一种方法的一个很好的理由。假设您想获得特定卷号的所有标记。 (例如,使用1。)使用第二种方法,它只是:

SELECT * FROM marks WHERE roll_number = 1;

使用第一种方法(除非其他人知道更好的方法),它是:

SELECT * FROM subject_a WHERE roll_number = 1
UNION
SELECT * FROM subject_b WHERE roll_number = 1
UNION
SELECT * FROM subject_c WHERE roll_number = 1
...

等等,对于每个未知数量的主题表。

相关问题