Ich glaube, wenn Sie dieses System erweitern werden dann mehr Informationen enthalten, die Sie von Nacharbeiten Ihrer Datenbank profitieren könnte, würde ich es wie so bauen:
Tabellenname = Bold
Spaltenname = Kursive
Students:
- SID (Primärschlüssel)
- Weitere Informationen über den Schüler
Tests:
- TID (Primary Key)
- Weitere Informationen über den Test
Test-Noten
- GID (Primary Key)
- TID (Fremdschlüssel)
- SID (Foreign Key)
- Grade
Diese Struktur basiert auf einer Idee namens Datenbank-Normalisierung (Sie erhalten viele Informationen, wenn Sie es googeln).Ich gebe Ihnen eine kurze Zusammenfassung unten, aber wenn Sie viel SQL machen, sollten Sie selbst darüber nachlesen:
Das erste, was zu wissen ist, dass ein Primärschlüssel nur eine eindeutige Kennung ist, ist es normalerweise kein Teil der Information (da es jedoch eindeutig ist, muss jedes Datum einen anderen Wert für seinen Primärschlüssel haben), und ein Fremdschlüssel ist eine Möglichkeit, eine Zeile in einer Tabelle aus einer Zeile in einer anderen Tabelle zu referenzieren Schlüssel: zum Beispiel hier der Fremdschlüssel SID in jeder Klasse verweist auf einen einzelnen Schüler, basierend auf ihrem Primärschlüssel SID.
z.B. Schüler hat SID 1 und alle seine Tests haben 1 in der Spalte SID. Gleiches gilt für Schüler 2, 3, 4 und so weiter.
Die Grundidee der Normalisierung besteht darin, dass alle eindeutigen Daten nur einmal gespeichert und dann an den anderen Stellen, an denen sie verwendet werden, referenziert werden (Wenn Sie im Beispiel sehen, wie die Schlüssel strukturiert sind, werden alle Schülerinformationen gespeichert in einer Tabelle und dann in ihren Prüfungsnoten verwiesen, anstatt in jeder Klasse doppelt zu sein).
abzurufen, was man aus diesen Tabellen möchte ich diese verwenden würde (seine in PHP geschrieben):
$sql = 'SELECT * FROM Tests ORDER BY TID';
$tempresult = mysql_query($sql);
while($temprow = mysql_fetch_array($tempresult)){
echo $temprow['TID'];
}
$sql = 'SELECT * FROM Students';
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
echo '\n'.$row['SID'];
$sql = 'SELECT * FROM Grades WHERE SID='.$row['SID'].' ORDER BY TID';
$result2 = mysql_query($sql);
while($row2 = mysql_fetch_array($result2)){
echo ' '.$rows['Grade'];
}
}
Sie auf diese Formatierung hinzufügen können in den Echo Aussagen und auch jede weitere Informationen drucken Sie wählen hinzufügen. Wenn Sie Fragen haben, fragen Sie sie.
EDIT: Ich habe die anderen gelesen und stimme zu, dass ihre Methode aller Wahrscheinlichkeit nach überlegen ist, die einzige Sache, über die ich nicht sicher bin, ob Pivot-Tabellen erweitern können, um eine variierende Anzahl von Tests zu behandeln, wenn es kann (oder wirst du nicht brauchen), dann schlage ich ihre Methode vor, ansonsten denke ich, dass dies in deiner Bewerbung einen Platz haben könnte.
Formatierung mit der Schaltfläche "Code" können Sie eine Schriftart mit fester Breite verwenden, so dass diese Tabellen ausgerichtet und besser lesbar sein – ford