Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie warunkowe?
Hazel
post
Post #1





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Witam.
Moja struktura bazy jawi się tak:

tabela X (id, type (pole typu ENUM o możliwych wartościach t lub n lub g), nieistotna_kolumna1, nieistotna_kolumna2...)

tabela T (id, jakieś tam kolumny)
tabela N (id, jakieś tam kolumny)
tabela G (id, jakieś tam kolumny)

Tworzę zapytanie SELECT, które ma pobierac dane z odpowiedniej tabeli T lub N lub G, w zależności od wartosci type dla danego id. Da się to zrobić jednym zapytaniem poprzez łączenie tabel w jakiś sposób? Zupełnie nie mam pomysłu.

Oczywiście, nie musi być jednym zapytaniem - ale możliwie najwydajniej. Żeby nie trzeba było pobierać wartości type do php i w zależności od tej wartości robić trzech różnych zapytań... No, chyba że nie da się inaczej.

Proszę o pomoc i pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mysz0n
post
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 16.08.2006
Skąd: szy-ły

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


szczerze mówiąc tabele w bazie wydają mi sie niestety - nie optymalne. optymalnośc chyba zawsze polega na jaknajlepszym zaprojektowaniu bazy, wiesz jak ja bym zrobił? zostawił tabele w której są wybrane przedmioty przez usera, i zrobił 2 table - zamiast tych 3 (T,N,G).
mianowicie tabela PRODUKTY | id_prod | id_kategorii | opis | cena | informacje_dodaktowe | inne_kolumny | przykładowy wpis w tej tabeli wyglada tak (1,1,jakis opis, 50zł,xxx,yyy)

i 2. tabela KATEGORIE | id_kategorii | nazwa_kategorii | w tej tabeli maiłbys dane w stylu (1,książka), (2,plyty_dvd)
zachowujesz rozszerzalnosc - bo jak rozumiem teraz dodajesz czasopisma - i musisz dodac nową tabele do tabel T,N,G, i tam wrzucic czasopisma - co jest słabe, bo od ilosci kategorii bedzie zależała ilośc tabel? prowadzac wiekszy sklep mogłbys miec kilkadziesiat tabel a w kazdej po 10 wpisów.
a tak - dodajesz nową kategorie do tabeli - kategorie i spoko.do koszyka dodajesz produkty poprzez id_produktu, a nazwe kategorii wyciagasz poprzez takie zapytanie.

  1. SELECT * FORM produkty p, kategorie k
  2. WHERE k.id_kategorii = p.id_kategorii


nie ma w tym nic złego, że miałbyś nawet 100tysiecy produktów z różnych kategorii w jednej tabeli.
jesli to nie pomogło - daj znac, cos innego wymyślimy (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
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: 8.10.2025 - 00:48