/ / Junction table sem chave primária - mysql, sql, innodb, mesa de junção

Tabela de junção sem chave primária - mysql, sql, innodb, mesa de junção

Digamos que eu tenha uma tabela de junção para resolver muitos relacionamentos que tenho entre duas tabelas. Minha tabela de junção também tem sua própria coluna "Método" para descrever o relacionamento. Exemplo de mesa de junção

Normalmente, eu faria uma chave primária composta[a], [b] e [method] (o método precisa fazer parte do que torna uma linha única), mas meu problema é que o campo [method] pode ser NULL. Portanto, não posso adicioná-lo à chave primária.

Então o que eu fiz foi criar um índice único:

ALTER TABLE A_B ADD UNIQUE INDEX `Unique` (`a`, `b`, `method`);

A tabela não possui chave primária. Isso é uma coisa boa para fazer ou eu preciso fazer algo diferente?

Respostas:

1 para resposta № 1

O uso de uma chave primária não é a única maneira de garantir a exclusividade dos registros. Existe uma restrição exclusiva que você pode implementar para realizar o que é necessário.

http://www.w3schools.com/sql/sql_unique.asp