![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 12 Dołączył: 4.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Cośtam wiem, ale nie jestem orzeł w pracy z bazami i potrzebuję porady kogoś bardziej doświadczonego. Mam przykładowe (i znacznie uproszczone na potrzeby mojego pytania) tabele w bazie danych:
Powiedzmy, że bazę mamy wypełnioną przykładowymi danymi:
Jak widać każdy artykuł może należeć do wielu kategorii. Załóżmy, że mam 1000 artykułów w bazie i 100 kategorii. Chciałbym odczytać z bazy danych 10 (a jeśli ktoś będzie chciał następne to 10 kolejnych itd.) ostatnio dodanych artykułów należących do kategorii `zdrowie`(2), lub `Gotowanie`(3) ale tak, by przy każdym artykule wyświetlała się także lista wszystkich kategorii do których on należy. Czyli w php chciałbym mieć tabele zawierającą między innymi wiersz: array ('tytul'=>'Barsz Czerwony','data'=>'2011-10-20 10:10:10','kategoria'=>array('Przepisy na zupy','Zdrowie','Gotowanie')) Nie ma problemu by wyświetlić 10 ostatnich artykułów należących do kategorii 2 i 3. Np. mogę to zrobić tak.
Mógłbym teraz osobnym zapytaniem odczytać tabelę `ak` i używając klauzuli WHERE otrzymam tylko wiersze dotyczące pobranych artykułów:
Brakuje mi wiedzy i doświadczenia by wymyślić lepsze rozwiązanie (czyli jedno zapytanie do zwrócenia newsów i drugie do pobrania ich kategorii). Czy ktoś ma lepszy pomysł na rozwiązanie (nie wiem może funkcje w mysqlu, podzapytania czy coś?), czy nie kombinować i zostać z takim? I nie wiem jak to z prędkością działania takich zapytań będzie. Są jakieś sprawdzone metody optymalizacji? Jesli nie masz pomysłu na lepsze rozwiązanie to proszę napisz to... będę wiedział, żeby dłużej nie kombinować i zostawię jak jest. pozdrawiam Ten post edytował aachi 5.11.2011, 18:31:32 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 14:20 |