Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> relacje miedzy tabelami, klucze
zietek
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 1
Dołączył: 25.12.2007

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


Witam!


Tabela 1. Producenci

Kod
ID MARKA

1 Sony
2 Samsusng
3 Lg



Tabela 2. Towary

Kod
ID ID_PRODUCENTA NAZWA

1             2 monitor
2             2 telewizor
3             3 dvd-rom



Do tej pory dane wybieralem przy pomocy LEFT JOIN:

  1. SELECT Towary.ID
  2. Towary.ID_PRODUCENTA
  3. Towary.NAZWA
  4. Producenci.MARKA
  5. LEFT JOIN Producenci ON Producenci.ID = Towary.ID_PRODUCENTA
  6. FROM Towary


Stosujac ujemne wartosci w polu ID_PRODUCENTA (nie majace odpowiednikow w tabeli Producenci) okreslam np:
ID_PRODUCENTA = -1 gdy nieznany producent z terenu Europy
ID_PRODUCENTA = -2 gdy nieznany producent z terenu Azji
itd...

W takich przypadkach otrzymuje w wynikowym zapytaniu pole MARKA wypelnione wartoscia NULL a ujemna wartosc pola ID_PRODUCENTA wskazuje jaki

komunikat ma zostac wyswietlony przy danym produkcie z powodu braku producenta.

Minusem tej 'calej zabawy' jest koniecznosc sprawdzania przy usuwaniu rekordow z tabeli Producenci, czy nie ma jakis rekordow w tabeli Towary

podpietych pod usuwanego producenta.


Zdaje sobie sprawe, ze mozna to wykonac w sposob bardziej profesjonalny przy wykorzystaniu kluczy i relacji laczacych obie tabele.

Moze mi ktos podsunac pomysl?
Czy jest mozliwosc utowrzenia takiej relacji, ktora nie wymusza posiadania prawidlowego klucza przez tabele podrzedna (chodzi o ujemne

ID_PRODUCENTA)? Jezeli nie, to w jaki sposob rozwiazac ten problem?
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: 24.08.2025 - 01:31