Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dynamiczne dodawanie pól - wlasciwosci
m.b
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 17.01.2005

Ostrzeżenie: (0%)
-----


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?

Ten post edytował m.b 27.04.2007, 15:54:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
valhard
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 21.09.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
m.b
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 17.01.2005

Ostrzeżenie: (0%)
-----


Dzieki wielkie, widze ze na okolo podchodzilem do problemu, a rozwiazanie jest banalne.

Pozdrawiam
Go to the top of the page
+Quote Post
joohn
post
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 10.12.2007

Ostrzeżenie: (0%)
-----


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:)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:10