Witajcie.
Jestem w trakcie pewnego projektu, którego kod będzie oglądał klient, dlatego chce aby wszystko było wysokiej jakości.
Dodatkowo projekt ma się rozwinąć więc jest narzut na optymalizację.
Także do rzeczy - podam przykładową strukturę:
produkt (
id_produkt INT PK
wartosc FLOAT
typ (produkt | usluga)
....
)
opiekun (
id_opiekun INT PK
imie VARCHAR
....
)
produkt_opiekun (
id_produkt INT FK
id_produkt INT FK
)
Chyba najprostsza możliwa struktura tabel w relacji wiele do wielu.
Przywykłem do tego, że gdy muszę pobierać coś z takich tabel rozkładam to na mnogą ilość zapytań i coś mi się zdaje, że nie jest to najoptymalniejsze rozwiązanie.
Dajmy przykładowe zadanie:
Pobierz wszystkie produkty powyżej wartości 1000 które nie mają opiekuna a ich typ to usługa.
Jak zbudować takie zapytanie aby było 'poprawne' z każdej strony? Gdzie dać indeksy? Czy rozbicie tego na kilka zapytań to jest błąd? W jednym zapytaniu i tak musielibyśmy robić podzapytania także czy jest to taka duża różnica?
Chciałbym to raz a dobrze zrozumieć. Jeżeli znacie jakieś miejsce które wyjaśnia lepiej prace z relacjami to proszę o podanie.
Pozdrawiam.