2013-06-11 62 views
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) 

在此先感谢!

+6

做一些“数据标准化”或“标准化数据”的基础研究。你不会有4张学生桌,你会有一张学生表和一张成绩表(如果你需要超过1-12等等),那么学生将有一个grade_id。 – Jessica

+0

在此处插入有关* Alpha *孩子的笑话 – 2013-06-11 21:03:31

回答

1

就个人而言,我不会为每个年级的表格。为什么?因为不管等级如何,所有数据都是相同的。如果你想添加一个像“date_student_graduted”或“age_of_student”这样的列......你将不得不更新所有这4个表。

相反,创建1个表,用于存储所有的学生和具有标识的等级一栏。

如果你想现在的学生与一个特定类关联,您将创建通过给每个学生和班级一个特定的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>"; 

    } 




} 
+0

谢谢,但是如何存储班级数据,比如班级博客网址? – russellsayshi

+0

在另一张表中。 列: ID, CLASS_NAME, class_grade, class_blog_url, CREATED_TIME, 等 – Oscar

相关问题