Cześć,
Stworzyłem portal zawierający pewne oferty. Są one przypisane do kategorii oraz posiadają różne parametry (zależne od kategorii, w której się znajdują).
Przypuśćmy, że chcę wywołać listę 100 ofert (bez paginacji). Na tej liście jest podana kategoria oraz parametry dla każdej z ofert.
Pytania brzmią:
1. Czy podczas dodawania ofert do bazy dodawać kategorię w tabeli "Oferty" jako:
a. pole tekstowe z pełną nazwą kategorii
b. id kategorii, która znajduje się w osobnej tabeli "Kategorie" (połączenie kluczem obcym)
Tu dodam, że tabela z kategoriami i tak musi istnieć w innych celach.
2. Czy podczas dodawania ofert do bazy dodawać parametry do:
a. wielu stworzonych kolumn w tabeli "Oferty"
b. osobnej tabeli z parametrami (połączenie kluczem obcym)
Z punktu widzenia zachowania odpowiedniej struktury tabel w obu przypadkach padłaby zapewne odpowiedź "b" natomiast z punktu widzenia optymalizacji dla mnie (laika) odpowiedniejsze byłyby rozwiązania "a" ponieważ podczas wywoływania 100 ofert nie kluczymy 100 razy po 3 tabelach, aby uzyskać odpowiednią finalną tabelę wyników tylko pobieramy rekordy z jednej tabeli.
Zastanawiam się jaki wpływ na prędkość działania zapytań ma stosowanie odwołań do innych tabel.
Czy ma to wpływ marginalny i przy odpaleniu strony ze 100 wynikami przez 1000 osób jednocześnie nie będzie zauważalnej różnicy w przeciążaniu serwera?
Będę wdzięczny z opinie.
Pozdrawiam.