mysql relacionamento de muitos para muitos

Estive lendo o tutorialComo lidar com um relacionamento muitos-para-muitos com PHP e MySQL .

Nesta pergunta, refiro-me à seção "Esquema do banco de dados", que declara as seguintes regras:

Essa nova tabela deve ser construída para permitir o seguinte:

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

Agora está claro como cristal até agora.

O único problema que estou tendo é com a terceira regra ("Ele deve permitirnão existe mais de uma linha para qualquer combinação").
Quero que isso seja aplicado também, mas não parece funcionar dessa maneira.

Na minha instância de teste do mysql (5.XX), posso adicionar duas linhas que refletem o mesmo relacionamento!

Por exemplo, se eu fizer essa relação (adicionando uma linha):
A para B
Também me permite fazer essa relação:
B a A

Portanto, a questão é realmente duas perguntas:

1)Como faço para estabelecer a 3ª regra que não permitirá fazer o acima? Tenha apenas uma relação única, independentemente da combinação.

2) Quando eu vou quererprocure todas as relações de 'A', como seria a consulta SQL?

Nota 1: Basicamente, meu objetivo final é criar um sistema de "amizade" e, até onde eu entendi, a solução é uma tabela de muitos para muitos. Sugira o contrário, se possível.

Nota 2:A tabela de usuários está em um banco de dados diferente das relações (chame de amizades)mesa. Portanto, não posso usar chaves estrangeiras.

questionAnswers(3)

yourAnswerToTheQuestion