/ / Tabela skrzyżowań bez klucza podstawowego - mysql, sql, innodb, table-skrzyżowania

Tablica połączeń bez klucza podstawowego - mysql, sql, innodb, stół połączeniowy

Powiedzmy, że mam tabelę złącz, aby rozwiązać wiele relacji między dwiema tabelami. Moja tabela połączeń ma również własną kolumnę "Metoda" opisującą relację. Przykład tablicy przyłączeniowej

Zwykle tworzyłem złożony klucz podstawowy[a], [b] i [metoda] (metoda musi być częścią tego, co czyni wiersz unikalnym), ale moim problemem jest to, że pole [method] może mieć wartość NULL. Dlatego nie mogę dodać go do klucza podstawowego.

Więc to, co zrobiłem, to stworzyć unikalny indeks:

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

Tabela nie ma klucza głównego. Czy to jest w porządku, czy muszę zrobić coś inaczej?

Odpowiedzi:

1 dla odpowiedzi № 1

Używanie klucza podstawowego nie jest jedynym sposobem zapewnienia wyjątkowości rekordów. Istnieje wyjątkowe ograniczenie, które możesz wdrożyć, aby osiągnąć to, co jest potrzebne.

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