Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Architekura bazy - jedna czy kilka tabel?
Forum PHP.pl > Forum > Bazy danych
Foxx
Załóżmy, że mamy sklep z kilkoma typami produktów.
Załóżmy, że każdy produkt ma dużo atrybutów, powiedzmy 50.
I na koniec - że poszczególne typy produktów mają większość atrybutów wspólnych. Powiedzmy, że gdyby zrobić jeden superprodukt, posiadający wszystkie możliwe atrybuty to byłoby ich 65.

Czy w takiej sytuacji należy zrobić osobną tabelę dla produktów każdej kategorii czy raczej zrobić jedną tabelę ze wszystkimi możliwymi parametrami i pozwolić na niewykorzystanie kilku z nich w każdym produkcie?
Jakimi kryteriami kierować się przy podejmowaniu decyzji?
Rafal Filipek
Ja bym zrobił to bez udziwniania.
- tabela z produktami
- tabela z typami
- tabela z atrybutami typow
- tabela z atrybutami typow przypisanymi do produtkow
powiedzmy ze masz 1000 produktow w sklepie kazdy tak jak mowiles ma 50 atrybutow. Powiedzmy ze kazdy typ ma jakies 10 atrybutow. Typow masz ze 20. W takim przypadku masz:
produtky - 1000
typy - 20
atrybuty typow - 20 * 20 = 400 ( zakladam pesymistycznie ze kady typ ma rozne atrybuty )
atrybuty produktow = 1000 * 50 = 50000
i jest to pesymistyczna ilosc rekordow. Zakladajac teraz ze na 1 stronie maksymalnie wyswietlisz ze 30 produktow to ilosc danych jakie bedziesz musial przerobic robi sie bardzo mala.
Dorzucisz do tego cache i nie powinno byc problemu. No i pamietaj o indeksach smile.gif
konys
Podobny sposób zostal zaimplementowany w Magento i warto moim zdaniem zajrzec do wygenerowanej przez niego bazy. Swoja droga polecam tutorial EAV.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.