Anzeige:
Ergebnis 1 bis 2 von 2

Thema: MySQL - Verknüpfung zwischen zwei Zeilen einer Tabelle

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.03.2012
    Beiträge
    1

    MySQL - Verknüpfung zwischen zwei Zeilen einer Tabelle

    Hallo,

    ich muss für ein System mehrere Zeilen aus einer Tabelle miteinander Verknüpfen.

    Also z.B. eine Tabelle personen, eine Tabelle personen_verknüpfung. Person1<->Person2 sind z.B. befreundet, dann wird ein Eintrag in personen_verknüpfung vorgenommen.

    Bisher hat die Verknüpfungstabelle die Spalten Person_id1 und Person_id2.

    Sofern dann Person1<->Person2 befreundet sind wird in personen_verknüpfung eine Zeile angelegt mit den jeweiligen IDs von Person1/Person2.

    Das unschöne daran: Abfragen werden ziemlich kompliziert. Wenn ich wissen möchte, ob Person1 und 2 befreundet sind, muss ich BEIDE Felder (ID1, ID2) in personen_verknüpfung abfragen.

    Alternativ könnte ich das Tupel einfach doppelt speichern, also einmal als Person1<->Person2 und einmal als Person2<->Person1. Schön ist das allerdings auch nicht, da redundant.

    Hat vielleicht jemand eine Idee, wie man das besser lösen könnte? Ich hoffe, ich konnte das Problem klar genug darstellen.

    Wenn Mysql es ermöglichen würde, zweidimensionale Tupel wie (1, 2) für Person1<->Person2 direkt in einer Spalte zu speichern, könnte das einiges vereinfachen. Dazu konnte ich aber in der Doku nichts finden...

  2. #2
    Registrierter Benutzer
    Registriert seit
    02.08.2008
    Beiträge
    177
    Hi Klabund,

    so wie es sich liest, hört sich Deine Lösung eigentlich ganz in Ordnung an. Wenn Du wissen möchtest, ob zwei Personen befreundet sind, muss Du auch zwangsläufig beide Spalten abfragen. Einzige Gefahr, ist, das Du Freundschaftsbeziehungen zweimal eingefügt haben könntest und beim Lösnen der Freundschaft es einmal übersiehst.
    Das ist jetzt Leider ein bisschen länger für mich her, doch glaube ich so müsstest Du das Problem lösen können.
    ALTER TABLE Freundschaften ADD CONSTRAINT pkey_freundschaft PRIMARY KEY (id_A, id_B)
    Einfach einmal ausprbieren.
    Geändert von dml (02-04-2012 um 13:22 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •