[MySQL] UNIQUE-Key mit 2 Feldern - egal wie rum

ManicMarble

Erfahrenes Mitglied
(Das ist ja mal wieder ein Betreff....;))

Hallo zusammen,
gleich ohne Umschweife zur Frage, welche ich am besten an einem Beispiel erkläre:

Eine Tabelle hat u.a. 2 Felder, 'firma1' und 'firma2', in beiden steht jeweils die ID zu einem Datensatz in der Firmen-Tabelle. Es soll verhindert werden, dass es ein "Firmen-Pärchen" doppelt gibt. Also ganz klar: Unique-Index über die beiden Felder.

Jetzt gibt's bspw. einen Datensatz mit 'X' bei firma1 und 'Y' bei firma2. Einen zweiten Satz mit X und Y kanns nicht geben. Es soll aber auch keiner mit Y und X angelegt werden dürfen (also umgekehrt). Der Unique-Key lässt das natürlich zu - damit gäbe es das Pärchen eben doch doppelt.

Gibt es mit MySQL eine reine SQL-Lösung für dieses Problem? Ausprogrammieren (z.B. in PHP) lässt sich das natürlich relativ einfach, aber eine reine DB-Lösung?
Kennt jemand einen Trick?

Grüße,
Martin
 
Kanst Du vielleicht einfach zwei Unique-Keys anlegen? Einmal sorum, einmal andersrum? Nur ne Idee gerad ;)
 
Hallo Ralph,

nee, das geht wohl auch nicht, weil ja dann ein "Pärchen" trotzdem 2 mal vorkommen kann, einmal als X/Y und einmal als Y/X. Beide Unique-Schlüssel sind dann ja trotzdem jeder für sich eindeutig.

Hab' das Problem jetzt jedenfalls per Programmierung gelöst (die Firmen-IDs werden immer sortiert gespeichert, in 'firma1' kommt immer die kleiner ID.

Falls es einen reinen DB-Weg gäbe, würde mich das - aus purem Wissensdurst - trotzdem interessieren.

Schönen Abend noch,
Martin
 

Neue Beiträge

Zurück