2013-06-11 102 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

相關問題