Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie czy kombinacja pól występuje już w bazie
Lion
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 14
Dołączył: 23.02.2013

Ostrzeżenie: (0%)
-----


Mam dwie tabele: users i companies, połączone relacją jeden do wielu. Użytkownik może mieć wiele firm, w tym jedną oznaczoną jako własną. W tabeli companies mam pole user_id, które jest kluczem obcym z tabeli users i pole own_company. Pole own_company przyjmuje wartości 0/1. Czy da się jakoś tak zrobić na poziomie bazy danych, aby przy wstawianiu i aktualizowaniu danych sprawdzać, czy dany użytkownik ma już własną firmę, czyli czy występuje już kombinacja id użytkownika user_id i wartości 1 w polu own_companies. Myślałem o indeksie na te dwa pola, który byłby "unique", ale to spowoduje że będę mógł mieć też tylko jedną firmę obcą.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Nie kombinuj - rozwiązanie jest prostsze niż myślisz:

Tabelę companies zrób tak by own_company przyjmowało 1 lub NULL (czyli INT 1/0 + NULL) i ustaw na polach user_id,own_company indeks UNIQUE.

Kiedy dodajesz firmę nie należącą do gościa ustawiaj own_company na NULL, a jeśli gościa na 1 i tyle.

NULL nie jest brany pod indeks więc może wystąpić sytuacja:

id | user_id | own_company | inne pola ...
1 2 NULL
2 2 NULL
3 2 1
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: 14.10.2025 - 07:25