MySQL viele zu viele Beziehung

Lesen Sie das TutorialWie man mit einer Many-to-Many-Beziehung zu PHP und MySQL umgeht .

In dieser Frage beziehe ich mich auf den Abschnitt "Datenbankschema", in dem die folgenden Regeln aufgeführt sind:

Diese neue Tabelle muss so erstellt werden, dass Folgendes möglich ist:

* It must have a column which links back to table 'A'.
* It must have a column which links back to table 'B'.
* It must allow no more than one row to exist for any combination of rows from table 'A' and table 'B'.
* It must have a primary key.

Nun ist es soweit glasklar.

Das einzige Problem, das ich habe, ist mit der 3. Regel ("Es muss erlauben,nicht mehr als eine Zeile für eine Kombination vorhanden sein ").
Ich möchte, dass dies auch angewendet wird, aber es scheint nicht so zu funktionieren.

Auf meiner Testinstanz von mysql (5.XX) kann ich zwei Zeilen hinzufügen, die dieselbe Beziehung widerspiegeln!

Zum Beispiel, wenn ich diese Beziehung herstelle (indem ich eine Zeile hinzufüge):
A nach
Es erlaubt mir auch, diese Beziehung herzustellen:
B bis A

So ist die Frage eigentlich zwei Fragen:

1)Wie kann ich die 3. Regel befolgen, die es nicht zulässt, die oben genannten? Haben Sie unabhängig von der Kombination nur eine eindeutige Beziehung.

2) Wann ich willsuche nach allen Relationen von 'A', wie würde die SQL-Abfrage aussehen?

Note # 1: Grundsätzlich ist mein letztes Ziel, ein "Freundschaftssystem" zu schaffen, und soweit ich das verstehe, ist die Lösung ein Tisch mit vielen zu vielen. Wenn möglich, schlagen Sie etwas anderes vor.

Anmerkung 2: Die Benutzertabelle befindet sich in einer anderen Datenbank als die Relationen (nenn es Freundschaften)Tabell. Daher kann ich keine Fremdschlüssel verwenden.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage