![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 7.08.2005 Skąd: zabrze Ostrzeżenie: (0%) ![]() ![]() |
posiadam tabele (TB1), w ktorej przechowywane sa informacje podstawowe (nazwa, adres, woj, opis, itd) na temat podmiotow gospodarczych.
musze przechowywac dane o uslugach ktore moga swiadczyc podmioty, wiec... 2ga tabela (TB2) zawiera uslugi (id_uslugi|nazwa_uslugi). musialem jakos powiazac podmioty gospodarcze z uslugami, wiec stawiam trzecia tabele (TB3) - powiazania (id|id_uslugi|id_podmiotu), gdzie jeden podmiot moze miec przypisanych kilka uslug (czyli jest kilka rekordow gdzie wystepuje id_podmioty z przypisanymi mu roznymi id_uslug). jak rozwiazac zapytaniem sytuacje, gdy Uzytkownik strony zapyta: interesuja mnie interesuja mnie podmioty, ktore sa z woj X (czyli dane z TB1), oraz wykonuje uslugi Y, Z, V, W (dane z TB3)? ewentualnie w jaki inny sposob ustalic w miare sensownie powiazania pomiedzy podmiotami i uslugami zakladajac, ze uslugi musza byc zeslownikowa w taki sposob, by latwo dodawac kolejne rekordy (uslugi) do tabeli? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Pytanie zasadnicze... Czy owe Y,Z,V,W z T3 ma mieć wszystkie pojedynczy podmiot z tabeli T1, czy wystarczy, że ma choć jedną z owych cech? Bo jeśli choć jedną, to jest to nic innego niż JOINy z odpowiednim WHERE oraz IN. W drugim wypadku jest znacznie gorzej i napisanie takiego zapytania moim zdaniem mija się trochę z celem. Lepiej wtedy użyć grupowania i po stronie PHP określić stopień trafności wyrzucając wszystkie, które nie spełniają warunku pokrywania się z wszystkimi kryteriami.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 22:27 |