Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 理解数据库设计_Php_Sql_Database_Database Design_Pdo - Fatal编程技术网

Php 理解数据库设计

Php 理解数据库设计,php,sql,database,database-design,pdo,Php,Sql,Database,Database Design,Pdo,我想建立一个数据库来存储考试分数。我想知道是不是最好 每个科目的表格,该表格将记录一个卷号 或 有一个分数表,每个科目的卷号都有多条记录 由于受试者的数量不是固定的,哪种方法更好 对于第一种方法,由于表将使用php动态创建,因此表名将成为一个变量,这将意味着额外的清理工作 对于第二种方法,卷号将有许多重复项 因为我是DBMS新手,所以任何见解都值得赞赏。这里有一个很好的理由选择第二种方法而不是第一种方法。假设您希望获得特定卷号的所有标记。(例如使用1)对于第二种方法,它只是: SELEC

我想建立一个数据库来存储考试分数。我想知道是不是最好

  • 每个科目的表格,该表格将记录一个卷号

  • 有一个分数表,每个科目的卷号都有多条记录
由于受试者的数量不是固定的,哪种方法更好

对于第一种方法,由于表将使用php动态创建,因此表名将成为一个变量,这将意味着额外的清理工作

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


因为我是DBMS新手,所以任何见解都值得赞赏。

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

SELECT * FROM marks WHERE roll_number = 1;
对于第一种方法(除非其他人知道更好的方法),它是:


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

这可能会以主要基于意见的方式结束,但实际上,不要为每个主题创建一个表。@don’t所以第二种方法是可以的?我想你需要熟悉数据规范化的概念。我听过这本书的好东西,为普通人设计的数据库。有一个主题表,标记表可以对主题和卷号组合有唯一的约束,这样每个主题每个卷号只有一个标记。
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
...