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ę.
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 № 1Uż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