Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dynamiczne dodawanie pól - wlasciwosci
Forum PHP.pl > Forum > Bazy danych > MySQL
m.b
Witam,
mam taki problem: chcialbym dac userowi mozliwosc porownywania produktow, co niesie za soba rozbicie wlasciwosci produktow na pola. Wszystko jest ok do momentu, gdy sa to 2 produkty z roznymi wlasciwosciami. Chcialbym dodatkowo dynamicznie dodawac kolejne wlasciwosci produktu. Pomyslalem ze zrobie tak:
id_prod | id_kat | nazwa - tabela z postawowymi informacjami wspolnymi dla wsyzstkich produktow

id_wlasciwosci | wlasciwoscie_dla_kategorii | wymiary | pojemnosc | zoom itd. - tabela ze wzroem wlasciwosci dla danej kategorii

id_prod | id_wlasciwosci | pole1 | pole2 | pole3 itd. - powiazanie produktu z wlasciwosciami oraz dane dla wlasciwosci

Na 1 rzut oka wydaje mi sie to najsensowniejsze, problem z dodaniem nowej wlasciwosci do produktu - zawsze musi byc stala liczba pol.

Jak to rozsadnie rozwiazac?
valhard
Cześć,
potrzebujesz 3 tabel:

1) PRODUKT (z podstawowym opisem bez właściwości)

2) WŁAŚCIWOŚCI (słownik właściwości dostępnych w systemie -> [ID_WŁAŚCIWOŚCI, NAZWA] )

3) POWIĄZANIE (określa jaki produkt posiada jakie właściwości -> [ID_PRODUKT, ID_WŁAŚCIWOŚCI, WARTOŚĆ_WŁAŚCIWOŚCI]

w ten sposób nie ograniczasz sobie w żaden sposób ilości właściwości dla produktów.

Pozdrawiam,
VALHARD
m.b
Dzieki wielkie, widze ze na okolo podchodzilem do problemu, a rozwiazanie jest banalne.

Pozdrawiam
joohn
Sorry, że odkopuje stary temat, ale on najbardziej pasuje do mojego problemu.

Mam podobną sytuację jak kolega, z tym że u mnie właściwości mogą mieć postać np. boola, liczby integer, double, krótkiej czy długiej wartości tekstowej, w przyszłości np. większego bloba.

Czy efektywne z punktu widzenia silnika bazy danych jest przechowywanie wartości tych właściwości powiedzmy w varchar(4096)? Czy może porobić w jednej tabeli kolumny int_val, string_val, double_var w odpowiednich typach i tylko jedną wypełniać w zależności od typu właściwości, czy wreszcie może zastosować takie rozwiązanie jak na rysunku poniżej.




Załóżmy że w bazie będzie 100.000 produktów, każdy średnio po 10 różnych właściwości, a samych właściwości w sumie koło 200.

Z góry dzięki za opinie która wersja lepsza:)
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.