Schuldatenbankschema

Oct 22 2020

Ich arbeite an einem einfachen Schulsystem, das die Registrierung und den Zeitplan der Schüler übernimmt. Darüber hinaus sollte das System verschiedene Schultypen wie Kindergarten, Grundschule, Sekundarschule und Gymnasium (Vorschule und k12) behandeln.

Ich bin kein Experte für DB-Design , folge aber trotzdem, was ich aus dem, was ich durch Lesen und Üben lerne, kann.

  • Schüler
  • Elternteil
  • Student_parent (Wenn mehr als ein Elternteil im System sein möchte)
  • Schule (Wo das System überprüfen kann, ob der Schüler zu welcher Stufe gehört (Grundschule oder Sekundarstufe usw.))
  • Fach (Alle Fächer in den Schulen)
  • Klasse (Grundsätzlich Stundenplan)
  • Klassenzimmer (Jedes Zimmer und Labor in der Schule (Grundsätzlich Einrichtungen der Schule))
  • Teilnahme (noch nicht)
  • Noten (noch nicht)

Sind die Tabellenbeziehungen ausreichend oder müssen sie neu gestaltet werden? Gibt es ein Problem mit diesem Grundschema? Reicht es für das System aus? Wie werden Begriffe (Semester 1 und Semester 2) sowie Jahre umgesetzt? Was ist, wenn das Jahr endet? Wie kann man Schüler in ein neues Jahr versetzen (wie wird dies umgesetzt)?

Ich hoffe, einige Punkte zu Verbesserungen oder Problemen mit dem Schema zu erhalten, bevor ich mit der Programmierung beginne.

Dankeschön

. . Bearbeiten: John Herbert Vorschläge umsetzen . . .

Implementierung von John- Punkten mit Ausnahme des letzten, da es in der Schule keine Abteilungen gibt und die Anzahl der Schüler wirklich subjektiv für das Jahr ist.

  • Tabellennamen mit Präfixen geändert, um sie zu gruppieren.
  • Einige Felder wurden von John zur besseren Suche und Gruppierung vorgeschlagen
  • Hinzugefügt Tabelle Begriff und verband es mit der Schule (KG- Primar- Sec..etc)
  • Die Feldgrößen wurden von Int (11) nach Bedarf auf etwas Kleineres geändert

DB-Schema nach der Bearbeitung

Nach der Implementierung dieser Dinge kann jemand nicht anders, als zu wandern. Muss ich in Zukunft Indizes für die Leistung hinzufügen? Wo werden möglicherweise Indizes benötigt?

Ich hoffe, dass dies jemandem zugute kommt, der sich für DB-Design interessiert.

Antworten

1 JohnHerbert Oct 22 2020 at 03:04

Alles in allem denke ich, dass Ihre Schlüsselbeziehungen geradlinig genug und klar genug sind, dass ich mich leicht zurechtfinden kann. Sie werden wahrscheinlich einige Stellen finden, an denen Sie Änderungen vornehmen können, während Sie Ihre gespeicherten Prozeduren und andere Prozesse modellieren und schließlich codieren. Hier sind meine Gedanken, als ich sie durchgesehen habe.

  • Ersetzen Sie die Eltern durch etwas Allgemeineres, wie z. B. einen Vormund. Dieser Sprachgebrauch öffnet dem Schüler die Tür für andere Autoritätspersonen wie Großeltern und Adoptiveltern und ermöglicht eine Flagge, die anzeigt, dass die Person ein Notfallkontakt ist oder das Kind abholen darf.
  • Trennen Sie das Feld [Full_Name] in zwei Felder. [Vorname] und [Nachname]. Dies hilft beim Sortieren nach Namen während der Programmierung. (Es ist besser, wenn die beiden Williams-Schwestern in einem Bericht nebeneinander auftauchen, als wenn alle Marys der Schule zusammengefasst sind).
  • Schlagen Sie vor, das Feld [term] unter der Tabelle [subject] in die Tabelle [class] zu verschieben. In diesem Feld kann angegeben werden, ob Bobby Tables im Frühjahr 2010 oder im Herbst 2009 mit diesem bestimmten Lehrer in einem bestimmten Raum in dieser Klasse war. Ich hätte eine andere Tabelle mit den Datumsbereichen für diese Begriffe. (Als Randnotiz könnte INT (11) ein wenig übertrieben sein. Hundert Jahre einwöchiger Laufzeiten würden nur zu 5000 Begriffen führen, wobei nur INT (4) benötigt würde.)
  • In Bezug auf die Beförderung von Schülern zum nächsten Jahr könnte dies mit einem neuen Feld unter der [Schüler-] Tabelle geschehen, mit einem einfachen INT (2), das das Jahr ihrer Ausbildung angibt. Eine gespeicherte Prozedur, die am Ende des Schuljahres ausgeführt wird, kann die verdienten Credits überprüfen und nach oben verschieben.
  • Es kann auch erwogen werden, eine Abteilung wie Mathematik, Naturwissenschaften oder Englisch in die Tabellen [Fach] und [Lehrer] aufzunehmen. Dies kann verwendet werden, um alle Lehrer für Naturwissenschaften zusammenzufassen oder um alle Geschichtsklassen anzuzeigen, die in diesem Semester verfügbar sind, insbesondere wenn die Schule groß genug ist, um mehr als eine Sitzung einer bestimmten Klasse abzuhalten.