mysql relación de muchos a muchos

He estado leyendo el tutorialCómo manejar una relación de muchos a muchos con PHP y MySQL .

En esta pregunta, me refiero a la sección "Esquema de base de datos" que establece las siguientes reglas:

Esta nueva tabla debe estar construida para permitir lo siguiente:

* 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.

Ahora está claro como el cristal hasta ahora.

El único problema que tengo es con la tercera regla ("Debe permitirno existe más de una fila para cualquier combinación").
Quiero que esto se aplique también, pero no parece funcionar de esta manera.

En mi instancia de prueba de mysql (5.XX), ¡puedo agregar dos filas que reflejan la misma relación!

Por ejemplo, si hago esta relación (agregando una fila):
De la A, a la B
También me permite hacer esta relación también:
B a A


Entonces la pregunta son dos preguntas en realidad:

1)¿Cómo puedo prever la tercera regla que no permitirá hacer lo anterior?? Tenga solo una relación única, independientemente de la combinación.

2) Cuando quierabuscar todas las relaciones de 'A', cómo se vería la consulta SQL?

Nota # 1: Básicamente, mi objetivo final es crear un sistema de "amistad", y hasta donde yo entiendo, la solución es una tabla de muchos a muchos. Sugerir lo contrario si es posible.

Nota 2:La tabla de usuarios está en una base de datos diferente de las relaciones. (llámalo amistades)mesa. Por lo tanto, no puedo usar claves foráneas.