![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 274 Pomógł: 54 Dołączył: 2.05.2006 Skąd: Nadarzyn Ostrzeżenie: (0%) ![]() ![]() |
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 7 Dołączył: 5.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Podobny sposób zostal zaimplementowany w Magento i warto moim zdaniem zajrzec do wygenerowanej przez niego bazy. Swoja droga polecam tutorial EAV.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 13:39 |