![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 27.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Używając relację wiele do wielu, np.
ksiazka(idKsiazki primary key, tytul, ...) autor(idAutora primary key, imie, nazwisko, ...) autor_ksiazka(idAutora foreign key, idKsiazki foreign key) jako rozwiązanie problemu:jedna książka -> wielu autorów, jeden autor -> wiele książek. Moja baza wymaga (wg mnie) takiej konstrukcji, a o ile wyszukiwanie wg dowolnego parametru nie sprawia tu żadych problemów, to wyświetlenie wszystkich książek wraz z autorami jest chyba niemożliwe za pomocą jednego zapytania (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) A nawet z użyciem kilu zapytań będzie kłopotliwe - jak się to robi (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ZAZNACZAM, ŻE INTERESUJE MNIE ROZWIĄZANIE GDZIE W WYNIKU ZAPYTANIA DLA KAŻDEJ KSIĄŻKI OTRZYMAM TYLKO JEDEN REKORD Do tej pory 'załatwiałem' to w ten sposób, że w tabeli dawałem pola typu enum('Tak', 'Nie') dla kryterium 'zastosowanie' - gdzie jeden model może mieć zarówno jedno, jak i np. 6 różnych zastosowań. To nawet do pewnego stopnie załatwiało sprawę - x kolumn enum('Tak', 'Nie') o nazwie takiej jak zastosowanie. Załatwiało do czasu kiedy okazało się, że nie znam pełnej listy zastosowań, i odkrycie każdego nowego wiązało by się z modyfikacją struktury bazy a co za tym idzie - wszystkich skryptów. Ten post edytował basurman 27.02.2005, 22:07:53 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 27.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
w zasadzie spodziewałem się takiej odpowiedzi
ale problem pozostaje, jak ‘standardowo’ (poprawnie) pobiera się dane z baz o strukturze wiele do wielu dwie z możliwości jakie przychodzą mi do głowy to: I. pobranie wszystkich potrzebnych danych (np. z przykładowej tabeli ksiazka) a następni dla każdego idKsiazki wyciągnięcie danych o autorze (autorach) z tabeli autor poprzez tabele autor_ksiazda; połączenie danych do wyświetlenia za pomoca php ogromnym minusem tego pomysłu jest liczba zapytań > od liczby wyników (książek) II. pobranie wszystkich danych jednym zapytaniem - i tu znów duży minus - spora redundancja danych - dla ksiązki z 3 autorami otrzymam 3 rekordy analogicznie do tego co napisałem w poście powyżej, gdzie większość danych z 2 rekordów jest zbędna - dostałem je już w pierwszym rekordzie także w tym przypadku sporo pracy spada na php przy wyświetlaniu danych czekam na sugestie |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:38 |