Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dylematy z wydajnością
Vasquez21
post
Post #1





Grupa: Zarejestrowani
Postów: 213
Pomógł: 0
Dołączył: 2.11.2004
Skąd: Jaworzno

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


Witam.

Mam pytanie co do rozplanowania bazy danych w sklepie.

Mam wątpliwości co do rozwiązania które wymyśliłem tak więc chciałbym spytać o radę.

Załóżmy że mam 3 tabele.
- produkty (zawiera oczywiście produkty)
- kategorie (zawiera oczywiście kategorie)
- pro_kat (łączy obie tabele, tak by do kilku kategorii można było przypasować jeden produkt)

Wymyśliłem sobie, że będę przechowywał w "pro_kat", wyłącznie wpisy wtedy kiedy dany produkt należy do jakiejs kategorii. Nie chciałem mieć sytuacji, że dodaję jakis produkt i mam np. 100 kategorii to nagle pojawia mi sie w tabeli łączącej pro_kat, 100 wpisów z informacją że dany produkt należy lub nie należy (1/0) do danej kategorii.

Później jednak w panelu chciałem sobie zrobić coś takiego, że jak wybieram dany produkt to mogę edytować jego kategorie, otwiera mi się nowe okno, ładowane są wszystkie kategorie z bazy danych i zależnie od uprawnień pojawiają się butony "radio" z zaznaczonym tak lub nie.

Jedyne co mi przyszło do głowy wtedy to puścić wtedy jedną pętlę która będzie jechała po wszystkich kategoriach i drugą która za każdym razem wysyła zapytanie do BD, czy dany wpis tam jest. Tak sobie pomyślałem jednak że to będzie bardzo dużo zapytań. Dodatkowo po zaznaczeniu i wybraniu nowych kategorii znów mam dwie możliwości: albo najpierw wszystkie należące do danego wpisy usunąć i później zrobić inserty, albo sprawdzać czy dany wpis już istnieje i jeśli tak to UPDATE, jeśli nie to insert... Wydaje mi się że pierwsze rozwiązanie jest jednak dużo szybsze.

Oczywiście gdybym przechowywał wszystkie wpisy w pro_kat, to zrobiłbym poprostu update wszystkich pól.

Bardzo proszę o jakieś sugestie i ewentualne uwagi który kierunek powinnienem wybrać.
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: 22.08.2025 - 18:56