![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam dwie tabele :odcinki, o schemacie: <numer, nazwa, zakończony>, gdzie numer to klucz główny, oraz kierowcy, w której mam miedzy innymi atrybuty zawieszony i zawieszony_numer_odcinka, które oznaczają odpowiednio czy kierowca został zawieszony i na którym odcinku rajdu zawieszono kierowce.
Zatem naturalne jest, aby zawieszony_numer_odcinka był kluczem obcym i odnosił się do klucza numer w tabeli odcinki. Ale zawiesić kierowce może także administrator rajdu, wtedy też w polu zawieszony_numer_odcinka umieszczamy np wartość 0, jednak w tabeli odcinki nie ma odcinka o numerze 0 (bo administrator nie jest odcinkiem przecież), więc nie możemy wstawić tej wartości do pola zawieszony_numer_odcinka. Czy istnieje jednak możliwość aby zawieszony_numer_odcinka był kluczem obcym i jednocześnie mógł przyjmować jakąś wybraną wartość (w tym przypadku 0), która nie znajduje się w tabeli do której ten klucz się odnosi? Taki klucz obcy z wyjątkiem? Jeśli klucz obcy może odnosić się do dwóch rożnych tabel, to można utworzyć tabele admin z atrybutem id o wartości 0 i przy zawieszony_numer_odcinka napisać REFERENCES odcinki(numer), admin(id) ale z tego co zrozumiałem ze schematu polecenia CREATE TABLE nie można tego zrobić, nie jestem jednak tego pewien. Ten post edytował kangurmk 6.05.2009, 23:04:06 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 20:13 |