Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Import produktow i problem ze struktura bazy dla wlasciwosci pokategorii i cech produktow
Forum PHP.pl > Forum > Bazy danych
swiezak
Na stronie http://megalazienki.pl/wanny/prostokatne/m...37,k20,c25-1251 znajduje sie formularz, ktory umozliwia wyszukiwanie produktow po pewnych cechach w ramach danej kategorii (filtry: cena od __ do __, szerokosc, dlugosc, typ, rodzaj materialu, hydromasaz, seria, styl, rozmiar).
Chcialbym zrobic podobna wyszukiwarke, ale borykam sie z problemem zaprojektowania struktury bazy danych i przygotowania odpowiedniego szablonu do importu produktow, ktory dostarczyl klient.

Ponizej przedstawiam zarys koncepcyjny w duzym uproszczeniu (m.in bez tabeli producenta).

Tabela produkty
id
nr katalogowy
nazwa
cena
kategorie
zdjecia
cechy produktu (serializacja cech produktow)

Tabela kategorie
id
nazwa
filtry - serializacja

Tabela produkty_kategorie
id_produktu
id_kategorii

Plik sluzacy do importu na razie ma postac nastepujaca:


Czy ktos z Was widzi jakies sensowne rozwiazanie na polaczenie cech produktu z filtrami kategorii?
Bylbym wdzieczny za pomoc.
darko
Cechy produktu odserializuj, znormalizuj bazę poprzez wydzielenie cech do kilku osobnych tabel (model eav ?) lub jednej osobnej tabeli. Kluczem id produktu powiąż cechę z konkretnym produktem. Ostatnim etapem w przypadku szukania produktu po cesze będzie szukanie id produktu z tabeli cech i wiązanie left join z tabelą produkty_kategorie.
swiezak
Dzieki serdeczne za odpowiedz i porade.
Mam jeszcze pytanie: zakladajac, ze import odbywalby sie z pliku xls lub csv, Twoim zdaniem lepiej pozostac przy konwencji cecha produktu jako odrebna kolumna w arkuszu kalkulacyjnym, czy moze posilkowac sie rozwiazaniem ponizszym:

Pojedyncza kolumna

cechy_produktu
szerokosc|70
dlugosc|170
typ|prostokatne
rodzaj materialu|stal
hydromasaz|nie
seria|saniform plus
styl|klasyczny
rozmiar|170x70

Ktore rozwiazanie bedzie wydajniejsze przy imporie danych?

darko
Wiadomo, że produkt może posiadać wiele cech, dlatego najlepiej przy masowym imporcie wrzucić cechy do jednej kolumny i porozdzielać jakimś separatorem ich nazwy od wartości. W obróbce csv szybciej czyta się pojedyncze ciągi wartości będące w jednym wierszu niż dane porozwalane po kolejnych wierszach. Polecam dedykowaną w php funkcję do wczytywania danych z pliku csv: fgetcsv.

//edit
możesz posłużyć się nagłówkiem pliku csv (pierwszy wiersz) jako nazwą cechy, a w kolejnym wierszu odseparowane od siebie wartości. Tak jakbyś to normalnie poukładał w tabelkę w excelu.
swiezak
Dziekuje za poswiecony czas i pomoc.
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.