Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Właściwości produktów
Forum PHP.pl > Forum > Bazy danych > MySQL
xcreative
Witam,

Czy wie ktoś w jaki optymalny sposób stworzyć bazę produktów zawierającą różnorodne właściwości? Tzn. Tak jak w e-bay czy allegro komputer ma właściwości typu procesor, dysk itd a np kurtka ma rozmiar czy kolor. Jak zapisać te dane w optymalny sposób tak by było to najmniej skomplikowane i optymalne wydajnościowo. Czy dobrym pomysłem jest rozbijanie to na tabele produktów kategorii np products_pc, products_furniture, products_clothes itd? Czy też istnieje jakiś sposób zrobienia dynamicznej tablicy. Proszę wziąć pod uwagę szybkość i skomplikowanie wyszukiwania.

Pozdrawiam
Crozin
Google: EAV (Entity-Attribute-Value).
xcreative
Cytat(Crozin @ 24.04.2011, 15:33:41 ) *
Google: EAV (Entity-Attribute-Value).


Fajne rozwiązanie, ale dość słabe wydajnościowo. Tak pokminiłem i chyba bym zrobił to tak że do każdej kategorii tworzona byłaby oddzielna tabela products_details_[cat]. Ale ni cholery mi się nie uśmiecha tworzenie takiej liczby tabel (około 2000) nawet algorytmem. A może widoki? Gdyby stworzyć 20 atrybutów o z góry ustalonych typach ale nie mające większego sensu(puste) i przy wyszukiwaniu korzystać z widoku który by przypisywał każdemu z tych pól ustalony sens. Ale to też powoduje lekkie marnotrawienie przestrzeni, chociaż przynajmniej zapytania w porównaniu z EAV byłyby mniej skomplikowane. Co o tym sądzicie?
wookieb
Wszystkie atrybuty trzymasz w jednej tabeli. Przy odpowiednim zalożeniu indeksów nie powinno być problemów z wyszukiwaniem (tym bardziej, że zakładam iż produków nie będziesz mieć w milionach)
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.