Witam
Podczas tworzenia bazy danych pewnego serwisu natknalem sie na nastepujacy problem:
Serwis ma mniej wiecej taka strukture:
- ma N kategorii ( n ~ 100-300 )
- wszystkie kategorie maja kilka wspolnych cech (pol) + wiekszosc z nich ma kilka cech indywidualnych (od 0 do 4 cech)
- kazda kategoria ma przypisane jakies produkty (powiedzmy nie wiecej niz 10'000 kazda)
Problem polega na tym, ze na poczatku zaprojektowalem baze ktora miala tabele 'kategorie' ktora laczyla wszystkie wspolne cechy kategorii, a nastepnie dodatkowa tabele 'atrybutu', ktora zawierala dane w stylu: nazwa, rodzaj i do ktorej kategorii nalezy.
Jednak natknalem sie problem odczytu takiej bazy. Nie mozna tego zrobic sensownie jednym zapytaniem. Przy uzyciu joinow, dostaje za kazdym razem jeden atrybut i cala strukture kategorii. Spory narzut. Natiomast pobieranie najpierw wszystkich produktow a potem wczytywanie dla kazdego jego atrybutow osobnym zapytaniem wydaje sie jeszcze bardziej bezsensu.
Pomyslalem, wiec ze bede tworzyl tabele dynamicznie, dla kazdej kategorii osobno. Wtedy odejdzie problem łaczenia tabel oraz wyszukiwanie danych po atrybutach tez bedzie duzo prostsze.
Moje pytanie teraz brzmi: czy baza skladajaca sie z powiedzmy 300 tabel a zawierajaca te same dane co powiedzmy baza z 20 tabelami bedzie wolniej obslugiwana przez MySQL ?
Wydaje mi sie, ze liczba tabel w bazie nie powinna miec znaczenia, ale to tylko moje przeczucie i chcialbym zeby wypowiedzial sie ktos kto wie troche bardziej jak dziala MySQL.
Pozdrawiam