1

我正在为一所学校制作一些软件,其中包含所有学生的成绩并允许他们检查它,以及所有这些东西。我在数据库中为包含学生及其信息的四个年级中的每一个提供了表格 - 除了我还需要存储班级数据,例如班级博客的 URL。我想知道存储这些数据的最佳做法是什么,因为我无法将它们与所有学生放在一起。以下是数据库中的表:

Teachers (stores teachers & their emails, passwords, etc)
Alpha (stores all the alpha kids)
Beta (stores all the beta kids)
Gamma (gamma kids)
Delta (delta kids)
4

1 回答 1

2

就个人而言,我不会有每个年级的表。为什么?因为无论等级如何,所有数据都是相同的。如果您想添加“date_student_graduted”或“age_of_student”之类的列怎么办……您必须更新所有4个表。

相反,创建 1 个存储所有学生的表并有一列标识他们的成绩。

如果您现在想将学生与特定班级相关联,您可以通过给每个学生和班级一个特定的 id 来创建他们之间的关系(您可能已经这样做了)。

您将在学生数据库中创建一个列,其中包含“class_id”之类的内容,然后输入学生所在的班级 ID。

现在,例如,如果您想选择一个班级和该班级中的所有学生,您将首先选择班级,然后有一个循环进入数据库并选择每个学生,如果他们的 class_id 与当前班级 ID 匹配。

//Pseudo code

//select all classes
$classes = mysql_query('SELECT * FROM classes');

foreach($classes as $class) {

  $class_id = $class['class_id'];

  $students = mysql_query("SELECT * FROM students where class_id='$class_id' ");

  echo "list of students in the class $class[name] <br>";

  foreach($students as $stu) {

    echo "$stu[name] <br>";

  }




}
于 2013-06-11T21:56:21.820 回答