Announcement

Collapse
No announcement yet.

Wie elegant Einträge aus Verknüpfungstabelle löschen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wie elegant Einträge aus Verknüpfungstabelle löschen?

    Hallo!

    erstes Posting

    Ich habe insgesamt drei Tabellen:
    - Studenten
    - Lehrveranstaltungen
    - Belegung

    In der Tabelle Studenten sind Datensätze von Studenten vorhanden und natürlich ein primary key. In der Tabelle Lehrveranstaltungen sind Datensätze von Lehrveranstaltungen enthalten und ebenfalls ein primary Key.

    Ein Student kann mehrere Lehrveranstaltungen belegen und eine Lehrveranstaltung kann natürlich von mehreren Stundenten besucht werden.

    Diese n - n Beziehung habe ich mit Hilfe einer Verknüpfungstabelle "Belegung" dargestellt:

    In dieser Tabelle befindet sich ein primary Key, ein Fremdschlüssel (primary Key von "Studenten") und ein weiterer Fremdschlüssel (primary Key von "Lehrveranstaltungen")

    Soweit zur "Vorgeschichte"


    Ich greife auf die Datenbank über eine selbst entwickelte Applikation zu. (Programmiersprache Java)

    Wenn ich eine neue Belegung hinzufügen möchte, habe ich einen Studenten und eine Lehrveranstaltung. (Objekte in Java)
    Meine Methode bekommt diese Objekte übergeben. Allerdings haben die Studenten- und Lehrveranstaltungsobjekte jeweils nicht den primary Key mit dabei.
    Bevor ich nun also einen "Belegungs-Datensatz" hinzufügen kann, muss ich zuerst aus der Tabelle "Studenten" den passenden primary Key das Studenten-Objekt herauslesen, danach den passenden primary Key für das Lehrveranstaltungsobjekt. Erst wenn ich beide primary keys ermittelt habe, kann ich die neue Verknüpfung in die Tabelle "Belegung" hinzufügen.

    Das ist natürlich sehr aufwendig.

    Nun meine Frage: Gibt es eine Möglichkeit (vielleicht mit Joins) mit einem Datenbankbefehl eine Verknüpfung zu erstellen ohne vorher die primary keys seperat ermitteln zu müssen?

    Das gleiche bräuchte ich dann natürlich auch für das Löchen einer Verknüpfung.


    Ich habe es jetzt als Provisorium mit diesen drei SQL-Abfragen gelöst, aber sehr elegant scheint mir das nicht!

    Für Hilfe bin ich wie immer dankbar

    Grüße,

    Flasher

  • #2
    Hallo,

    kann es da zu keinen Verwechslungen der Studenten kommen, die vielleicht denselben Namen haben?
    Ansonsten, lasse Dein Programm, wie es ist. Komplizierte SQL-Befehle sind nicht immer die geschickteste Lösung. Programme, die relativ einfache SQL-Befehle beinhalten, lassen sich auch leichter auf andere Datenbanken umstellen.

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Hallo,

      ich würde es als Design-Fehler bezeichnen, wenn der Primary-Key des zugrundeliegenden DS nicht Bestandteil des Objektes in der Anwendung ist. Ein Primary Key dient doch gerade dazu, einen DS eindeutig zu identifizieren. Wenn du jetzt andere Eigenschaften deines Objektes (Name, Nachname, etc.) verwendest, um den PK zu ermitteln, dann ist das doch wie "Befragen einer Glaskugel" und die Folgefehler sind vorprogrammiert.
      Es wäre also aus meiner Sicht sinnvoller, zur Problemlösung den PK in die entsprechenden Objekte der Anwendung mit aufzunehmen.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment

      Working...
      X