Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql]unikalność na poziomie rekordu
totoo
post
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??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
azr
post
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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 16:07