Baza danych w sklepach internetowych

0

Witam
na studiach na zaliczenie wybrałem sobie projekt stworzenie sklepu internetowego czy też aukcyjnego. Będzie to sklep elektroniczny i tak się zastanawia jak sobie poradzić z bazą danych. Otóż np. jak rozwiązać problem z parametrami urządzeń? Monitor ma inne parametry niż np. procesor. W bazie danych zrobić do każdej kategorii dodać tabelę z parametrami? Nie chciałbym tych wszystkich parametrów wrzucić do jednej kolumny pod nazwą opis.

1

To zobacz jak np. wygląda prawdziwy sklep. Zwykle, nieważne jaki produkt otworzysz, to masz ładną tabelkę z parametrami. Oznacza to, że musi to być trzymane w jeden spójny sposób.

I tak, zrób tabelę parameteres z 3 kolumnami (id, key, value). Każdy produkt powinien mieć listę takich parametrów.
Ale czy na pewno wrzucanie np. monitorów i tabletów do innych tabel jest dobrym pomysłem? Bo dla mnie to podchodzi stricte pod produkt na sklepie.

1

Jest kilka opcji:

  1. Już wspomniane - tworzysz tabelę z parametrami: ID, OBJECT_ID, KEY, VALUE.
  2. Tworzysz tabelę z produktami, kolumny: ID, TYPE, MANUFACTURER, NAME, PARAMETERS i do PARAMETERS wrzucasz JSONa/XMLa.
  3. Tworzysz różne tabele na różne kategorie.

Rozwiązania 1 i 2 są elastyczne, ale wymagają jakiejś formy kontroli spójności danych (co jeśli ktoś doda do myszki parametr "głębia kolorów"?). W przypadku rozwiązania 2 można po prostu walidować o XSD obiekt po typie, w przypadku nr 1 można dorzucić słownik parametrów i sprawdzać, czy nikt przypadkiem nie dorzuca parametrów, których brakuje w słowniku.

Rozwiązanie 3 jest wygodne dla mniejszych ilości kategorii i wydajne.

0

Dzięki za szybką odpowiedź, chyba zrobię osobną tabelę PARAMETRY w której wrzucę IdParametru, IdKategorii, NazwaParametru, WartoscParametru, CzyAktywna
Teoretycznie dostęp do dodawania Parametru będzie miał ktoś odpowiedzialny więc i on będzie sprawował kontrolę co tam się znajduję, użytkownik nie będzie mógł tego edytować.

0

Czy przez idKategorii rozumiesz kategorię produktu czy parametru? Bo jeżeli to pierwsze, to źle zakładasz. Parameter to cecha produktu a nie kategorii. W razie gdybyś chciał znaleźć wszystkie parametry które są przypisane do jakiejś kategorii to zawsze możesz zrobić dodatkowego joina do produktu.

0

W sumie myślałem o kategorii do jakiej należy produkt, bo każdy laptop ma takie same parametry (ilość ramu, rodzaj procesora). A produktem dopiero jest np. Laptop Asus W232X

0

A no tak musi być do produktu bo przecież każdy laptop ma inne taktowanie a w tabeli Parametry przechowuje również wartości tych parametrów. Dzięki

1

Po co wynajdować koło na nowo?
Wzorzec EAV opisałem już tutaj: http://4programmers.net/Forum/Newbie/251523-konfigurator_pc_-_jak_zorganizowac_klasy?p=1137496#id1137496

Tu będzie o tyle łatwiej, że nie potrzebny jest zestaw, za to definicja jakie coś może mieć parametry jest w Kategorii, więc nie ma możliwości, że ktoś doda wartość dla "głębii kolorów" do myszki.

0

No też chce to rozdzielić na 3 tabele.
Produkt - nazwa np. Intel i5
Kategoria - CPU, DDR itd
Parametr - przechowywany parametr i jego wartość np. taktowanie - 2,2Ghz

1 użytkowników online, w tym zalogowanych: 0, gości: 1