Der Martin: Freundschaften

Beitrag lesen

Hallo,

»» Aber ein x<->y hatte ich noch nicht.
Das wäre hier eine Beziehung x<->x, also ein Selbstbezug.

also ist Harry der Freund von Harry? Schon möglich, ich bin auch mein bester Freund. Aber darum geht es doch nicht, sondern um eine bivalente Beziehung, die zwei Elemente/Datensätze ungerichtet (oder gleichwertig in beide Richtungen) miteinander verbindet. Dass ein Datensatz x nicht nur mit y, sondern auch mit u, v und w eine solche Beziehung haben kann, ist dabei zunächst belanglos.

Oder wollen wir aus "A ist Freund von B" und "B ist Freund von C" auch folgern, dass A auch ein Freund von C ist? Nein, das wäre mir dann doch zu weit hergeholt.

Sonst wäre es nicht schwierig, einen doppelten Eintrag zu vermeiden.

Meinst du? - Naja, man könnte beim Eintragen einer solchen Relation die beiden IDs so sortieren, dass immer der kleinere Wert in die erste Spalte kommt. Dabei nutzt man nur aus, dass IDs eindeutig sind (schließlich repräsentieren sie ja Datensätze aus derselben Tabelle), während ihr tatsächlicher Wert belanglos ist. In Verbindung mit einem unique index sind wir dann schon gewaschen und gekämmt.
Auf die Weise könnte man auch gleich die fragwürdigen Einträge "X ist Freund von X" erkennen und abweisen.

So long,
 Martin

--
Bitte komme jemand mit einem *g* zum Wochenende, damit nicht über mich gelacht wird.
  (Gunnar Bittersmann)