我正在为一所学校制作一些软件,其中包含所有学生的成绩并允许他们检查成绩,以及所有这些东西。我在包含学生及其信息的四个年级中的每一个的数据库中都有表格 - 除了我还需要存储类(class)数据,例如类(class)博客的 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)
最佳答案
就我个人而言,我不会为每个年级准备一张表格。为什么?因为无论等级如何,所有数据都是一样的。如果您想添加像“date_student_graduted”或“age_of_student”这样的列怎么办...您将不得不更新所有 4 个表。
相反,创建 1 个表来存储所有学生,并有一列标识他们的成绩。
如果您现在想将学生与特定类(class)相关联,您可以通过为每个学生和类(class)指定一个特定 ID 来创建他们之间的关系(您可能已经这样做了)。
您将在学生数据库中创建一个类似“class_id”的列,然后放置学生所属的类(class) ID。
现在,例如,如果您想选择一个类(class)和该类(class)中的所有学生,您将首先选择该类(class),然后有一个循环进入数据库并选择每个学生,如果他们的 class_id 与当前类(class)编号。
//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>";
}
}
关于php - 在数据库中组织类数据的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17053598/