2016-04-23 8 views
0

Okay. Also muss ich eine Datenbank für eine Schule erstellen, und ich bin verpflichtet, mit Beziehungen zu jedem von mir erstellten Tisch zu arbeiten. Bisher habe ich ein paar Tabellen und ein paar Beziehungen, so: Ich habe Classrooms Tabelle einschließlich ID und ClassroomNumber (wie 101, 203 usw.). In einer anderen Subjects Tabelle habe ich SubjectName und ClassroomID und eine Beziehung wie diese bekommen:SQL-Beziehungen in Code

enter image description here

in Code (C#) Ich Select Werte von Classrooms Tisch, aber ich habe join/where verwenden, so dass ich hinzufügen where s.ClassroomID = c.ID (s und c vorher definiert). Okay, es funktioniert. Aber meine Frage ist anders. Warum bin ich verpflichtet, Beziehungen zu benutzen? Wofür sind sie? Join und where funktionieren ohne Beziehungen, also warum?

+0

Konsultieren Sie [Basis Datenbank Design?] (Http://stackoverflow.com/questions/29930453/) –

+0

Sie sind nicht verpflichtet. Und wenn Sie eine solche Frage haben, haben Sie vielleicht das falsche Werkzeug für Ihre Aufgabe gewählt. Sql DBs sind für viele Fälle perfekt, trotzdem kann Ihre Laufleistung variieren. – Serg

+0

Mann, ich bin. Weißt du, ich bin auf dem College, sie geben mir eine solche Übung mit vielen, vielen Anforderungen, und wirklich, ich muss – Frynio

Antwort

3

Es dient zur Sicherstellung der Datenintegrität. Sicherstellen, dass weniger Scheißendaten in die DB gelangen. Auch eine Struktur DB, die auch andere Leute leicht verstehen können.

Frag es nicht. Du brauchst sie. Sie wollen sie. In einem DWH tut man das nicht, aber in einer Transaktions-DB tut man das.

1

Fremdschlüssel sind Indizes, die auf der Beziehung zwischen den Tabellen/Spalten basieren. Dies wird sehr wichtig, je größer Ihr Tisch wird. Wenn Sie versucht haben, zwei Tabellen mit Millionen von Datensätzen zu verknüpfen und keine Indizes vorhanden sind, dauert die Abfrage wesentlich länger.