User_id jest powiązana z tabelą asp_Users po to ze gdy się ludzie logują do mojej aplikacji to potrzebuje pobrać te dane które do niego należą z tego własnie wynika że użytkownik zalogowany widzi swoich nauczycieli których wprowadził do bazy, ma to pewien sens który wynika właśnie ze specyfikacji mojej aplikacji.
Czyli User_id to klasyczny przykład klucza obcego, więc po co czynisz go kluczem głównym? To nie ma sensu i tyle.
A co do mojego pytania, to ja rozumiem że relacje występują w wielu zagadnieniach baz danych nie tylko w sql serverze, ale ten problem tyczy się konkretnie sql servera
W takim razie, powiedz, w jakiej bazie danych zrobisz to, co chcesz osiągnąć tutaj. Bo skoro to problem SQL Servera, to znaczy, że inne serwery baz danych to umożliwiają - czyż nie?
ponieważ gdy chcę utworzyć relacje miedzy tabelami tak jak podałem wiele-do-wielu (np: połączyć Teacher_Id z tabeli Teachers z Teachers_Id z tabeli SubjectsInTeachers i analogicznie z tabela Subjects) właśnie w sql menagment studio otrzymuję błąd "The columns in table do not match an existing primary key or unique" i nie mogę utworzyć relacji z czym nie miałem problemu gdy tworzyłem tą relacje łącząc pola User_Id, proszę o wskazanie błędu jakie popełniam oraz czemu otrzymuje taki błąd.
Twoja tabela N do N (SubjectsInTeachers) posiada DWIE kolumny, które mają być kluczami obcymi z DWÓCH innych tabel, z których każda ma klucz oparty na DWÓCH kolumnach. A DWA razy DWA to CZTERY, a nie DWA. Nie możesz wcisnąć kluczy obcych mających w sumie cztery kolumny do dwukolumnowej tabeli.
Więc albo SubjectsInTeachers ma mieć cztery kolumny, albo klucze w Subjects i Teachers mają mieć po jednej kolumnie (tak, jak moim zdaniem powinno być w tym przypadku, bo User_id jest w nich obu zbędne).