karwo27
16.05.2011, 13:56:04
Hej,
Mam do opracowania bazę danych w SQL na temat budowy systemu do tworzenia planu zajęć. Wszystkie tabele mam stworzone raczej poprawnie, jednak mam do Was pytanie, jak stworzyć unikalność rekordów w tabeli Przydział, tak aby żaden prowadzący nie miał w tym samym czasie dwóch zajęć, tak aby jedna sala nie była zajmowana przez dwie grupy...itd. itp? Jak to rozwiązać w SQL?
Moje tabele:
Przydział
ID_przydział
ID_przedmiot
ID_wykladowca
ID_grupa
ID_sala
ID_dzien
ID_godzina
Opis
Przedmiot
ID_przedmiot
Nazwa_przedmiotu
Opis
Rok
ID_rok
Nazwa
Rok_rozpoczecia
Opis
Grupa
ID_grupa
ID_rok
Liczba_studentow
Nazwa
Opis
I reszta tabel wygląda podobnie....chodzi mi głownie o tabelę Przydział, jak rozwiązać mój problem budowy planu zajęć?
Z góry dzięki za pomoc.
Noidea
16.05.2011, 16:21:46
Rozumiem, że masz takie założenia:
w danym dniu i o danej godzinie sala może mieć tylko jeden przydział
w danym dniu i o danej godzinie grupa może mieć tylko jeden przydział
w danym dniu i o danej godzinie wykładowca może mieć tylko jeden przydział
W takim razie wystarczy dodać do tabeli Przydział trzy klucze UNIQUE, składające się z trzech kolumn każdy (jak w ww. założeniach).
karwo27
16.05.2011, 17:20:56
Czyli mam wykonać komendę UNIQUE, która będzie wyglądać następująco:
...
UNIQUE (ID_wykladowca and ID_dzien and ID_godzina),
UNIQUE (ID_sala and ID_dzien and ID_godzina),
UNIQUE (ID_grupa and ID_dzien and ID_godzina),
...
Czy to jakoś inaczej ma wyglądać?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.