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ć.