2017-10-01 4 views
1

Diese Frage bezieht sich auf SQL.2D-Daten in SQL gespeichert

Students Daten (Namen, Geburtstag ...) sind in einer ersten Tabelle (Studenten) gespeichert. Beurteilungsdaten (Datum, Uhrzeit, Lehrer ...) werden in einer zweiten Tabelle (BEURTEILUNGEN) gespeichert.

Jetzt möchte ich die Antworten jedes Schülers zu jeder Bewertung speichern. Soll ich eine neue Tabelle erstellen (ANTWORTEN zum Beispiel), in der jede Antwort für jeden Schüler mit zwei Schlüsseln gespeichert wird (einer mit STUDENTEN und der andere mit ASSESSMENTS verknüpft)? Ist es die beste Praxis? Wenn ja, mache ich mir Sorgen um Aufführungen mit einer großen Anzahl von Schülern und Assessments.

Antwort

2

Dies ist ein bisschen lang für einen Kommentar.

Die Verwendung von dem, was Sie ANSWERS anrufen - und was ich StudentAssessments nennen würde - ist der richtige Weg, um diese Informationen in einer relationalen Datenbank zu speichern.

Dies wird in SQL als Junction-Tabelle bezeichnet und ist die Standardmethode zur Implementierung von n-m-Beziehungen.

Einige Datenbanken haben alternative Methoden zum Speichern von Listen in einem Feld - geschachtelte Tabellen, JSON, Arrays, XML. Diese passen jedoch im Allgemeinen nicht sehr gut zum relationalen Modell. Zum Beispiel können Fremdschlüsselreferenzen oft nicht definiert und durchgesetzt werden.

Ich würde mir keine Sorgen über eine "große" Datenmenge machen. Was Sie für groß halten, ist nach Datenbankstandards wahrscheinlich ziemlich klein.

Verwandte Themen