1

私は学校向けに、すべての生徒の成績を記録し、それをチェックできるようにするソフトウェアを作成しています。4 つの学年ごとに、生徒とその情報を含むテーブルをデータベースに作成していますが、クラス ブログの 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 に答える