Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

relationstabelle oder eine neue Spalte

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von jetwork, 12 September 2014.

  1. jetwork

    jetwork Fleissiger Benutzer

    Hallo zusammen,


    ich versuche gerade eine Datenbank aufzubauen. Ich habe ein ähnliches Problem wie folgendes Problem bekommen:
    Die Daten alle Schulen müssen in eine Datenbank gespeichert werden. Die Informationen über die Klassen jede einzelne Schule für jeweiligen Jahrgang muss auch in der Datenbank sein. Es ist nicht fest in Jedes Jahr wie viele parallel Klassen sein werden.
    z. B. es gibt manchmal Klassen 5a und 5b manchmal 5a, 5b und 5c

    Welche von folgenden Lösungen sind sinnvoll oder Wann ist welche lösung sinnvoll oder habt ihr einen besseren Vorschlag?
    Erster Vorschlag:
    tbl_schule

    schule_id
    schule_name
    schultyp
    schueleranzahl
    usw.

    tbl_beziehungen
    schule_ref
    klasse_ref

    jahrgang

    tbl_klasse
    klasse_id
    schueleranzahl
    klassenlehrer
    usw.

    Zweiter Vorschlag:
    tbl_schule

    schule_id
    schule_name
    schultyp
    schueleranzahl
    usw.

    tbl_klasse
    klasse_id
    jahrgang -> Jahrgang als eine neue Spalte
    schule_ref
    schueleranzahl
    klassenlehrer
    usw.

    Danke im Voraus
     
  2. akretschmer

    akretschmer Datenbank-Guru

    erste Lösung. "jahrgang -> Jahrgang als eine neue Spalte" ist komplett FAIL. In Tabelle Schule ist aber auch ein Fehler: Schüleranzahl. Das ist nix festes an der Stelle, es sei denn, daß soll eine Konstante wie z.B. die max. Anzahl sein. Die aktuelle Anzahl der Schüler berechnet sich aus der Summer der einzelnen Klassen.
     
    jetwork gefällt das.
  3. jetwork

    jetwork Fleissiger Benutzer

    Danke für deine Antwort.
    Warum ist zweite komplett fail?
    Mann kann auch die Informationen mit der Anweisung "where jahrgang = "2014"" abfragen? Was ist Fail daran?

    ist Erste Lösung wirklich sinnvoll genug oder hast du noch eine bessere Lösung?
     
  4. akretschmer

    akretschmer Datenbank-Guru


    Vielleicht hab ich Dich falsch verstanden, ich dachte, Du willst für jeden Jahrgang eine neue Spalte machen.
     
    jetwork gefällt das.
  5. jetwork

    jetwork Fleissiger Benutzer

    Meinst du aber trotzdem erste Losung ist besser?
     
  6. Hony%

    Hony% Datenbank-Guru

    Hi,

    wie @akretschmer schon angedeutet hat berechnet sich die Schülerzahl, sofern vorhanden, aus den Tabellen mit den Schülern. Da Schule und Klasse eine 1:n Relation bilden ist eine Relationentabelle überflüssig. Eine solche wird nur bei n:m Relationen benötigt.

    Gruß
    Hony

    Nachtrag:
    Die Lehrer würde ich allerdings in einer eigenen Tabelle abbilden. Es handelt sich hierbei zwar um eine 1:1 Relation, allerdings können Klassenlehrer auch Fachlehrer in einer anderen Klasse sein. Klasse und Fachlehrer bilden dann aber eine n:m Relation. ;)
     
    Zuletzt bearbeitet: 12 September 2014
    jetwork gefällt das.
  7. ukulele

    ukulele Datenbank-Guru

    Auch eine "maximale" Schüleranzahl kann sich ändern in sofern ist die Spalte Schüleranzahl in jeder Hinsicht deplaziert.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden