![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 15.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
nie wiem jak zapewnić unikalność w rekordzie w tabeli, w której trzymam kilka kluczy obcych(tych samych), chcem aby baza danych zachowala spójność, a nie wadlizować poprawność wpisu przez php. Potrzebuje, aby rekord zawierał unikalne klucze obce. Zastanawiałem się czy może transakcja będzie mogła to wykonać, bo trigger raczej odpada,
Co sądzicie na ten temat?? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 16.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem że cchesz zrobić to tak :
w tabeli 2 lub 3 kolumny są tym samym kluczem obcym ale chesz zpewnic zeby nie powtarzały sie w danym rekordzie? jeśli tak to tylko trigger i sprawdzenie warunków Cytat Poprostu daj unique do wszystkich kolumn... i masz unikalny wiersz .... (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) no chyba nie do końca: analizując przykład z pracownikami i projektami: tabela powiazań mialaby ma strukture: projekt ( FK z tablicy projektow ) | pracownik 1 (FK z tablicy pracownicy ) | pracownik 2 (FK z tablicy pracownicy ) i chcesz zapewnic ze jeden pracownik nie moze w pojedynke zajmowac sie projektem na 'dwa etetay' ale moze figurować w kilku proejtach róznych . Powyższe rozumowanie ( UNIQUE na kazdej z kolumn doprowadziloby do sytuacji ze do kazdego z projektow musiałby byc osobny zestaw pracowników. przykład : projekt | prac1 | prac2 ----------------------------- 0001 | p22 | p11 0002 | p33 | p15 0003 | p22 | p34 <- ten wpis jest poprawny ale nie mozemy go wpisać bo jest ustawione unique na klumnie prac1! a chodziło chyba o to żeby nie mozna bylo wstawić 0004 | p09 | p09 w dodatku unique na projekt blokuje nam mozliwosc pzypisanie np 4 odob do jednego projektu - ale to moze nie jest konieczne, niewiem. takze - relacje + triggery IMHO jedyne opcja. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 16:07 |