Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]dodatkowe atrybuty do wpisu
Forum PHP.pl > Forum > Przedszkole
elmozaur
Witam ponownie.
Moje drugie pytanie dotyczy systemu atrybutów. Z Wasza pomoca napisalem system Tagow wiec mam nadzieje ze z tym tez bedzie tak latwo.

Postaram sie to przedstawic na przykladzie:
Mam np sklep internetowy. Chcialbym aby kazdy wpis (produkt) mial swoje atrybuty ktore moga byc rozne dla roznych produktow np

produkt: but - atrybuty: kolor=czarny, typ=sportowy, rozmiar=44
produkt: dres - atrybuty: kolor=niebieski, rozmiar=XXL, material=bawelna
produkt: pilka - atrybuty: waga=1kg, rodzaj=pilkanozna, typ=tango12

Jak widac w obrebie jednego sklepu (hurtownia sportowa) chcialbym miec rozne produkty roznego typu z roznymi atrybutami.

Pytanie/prosba:
Jak teoretycznie podejsc do tego tematu ? jak zrobic to na bazie mysql ? Czy robic to tak jak np tagi ze w kazdym atrybucie trzymac numery ID produktow ktore go zawieraja ? Czy jest na to inny sposob ?
W tagach jest tylko nazwa a tu mam nazwe i wartosc i niewiem jak to teoretycznie ugryzc.

czy moge prosic o jakas podpowiedz ?

pozdrawiam
G
Sephirus
Moim zdaniem kwestia 3 tabel:

1. produkty

id | nazwa | itd...

1 | Buty Adidos xx-123 | ...
2 | Piłka do nogi Mike | ...
3 | Narty cc-987 | ...
...

2. atrybuty

id | nazwa

1 | kolor
2 | waga
3 | rozmiar
4 | długość
...

3. produkt_atrybuty

id | id_produkt | id_atrybuty | wartosc

1 | 1 | 3 | 41
3 | 3 | 4 | 120cm

I teraz jak to działa smile.gif

W tabeli pierwszej przechowujesz dane o produktach wspólne dla każdego produktu... dajmy na to nazwa, cena, liczba sztuk w magazynie itd...

Tabela 2 to nic innego jak lista nazw atrybutów (wszystkich) jakie są możliwe.

Tabela 3 łączy produkt z nazwą atrybutu i zawiera wartość tego atrybutu smile.gif

Wystarzczy teraz odpowiednio to poustawiać. Niestety przy takim rozwiązaniu każdy produkt mógłby mieć praktycznie każdy atrybut co przy jego dodawaniu byłoby kłopotliwe - dlatego trzeba zrobić grupy atrybutów czyli typy produktów.

dodatkowe tabele:

4. typy_produktow

id | nazwa

1 | Piłki
2 | Buty

5. typy_produktow_atrybuty

id | id_typy_produktow | id_atrybuty

1 | 1 | 1 // kolor piłek
1 | 1 | 3 // rozmiar piłek

Teraz wystarczy danemu w tabeli z produktami dodać dodatkowe pole id_typy_produktow i już wszystko wiemy.

Jakby wyglądało dodawanie produktu:

1. Wybór typu produktu (pokazują się odpowiednie pola - atrybuty do wpisania dla danego typu produktu)
2. Podanie wartości atrybutów oraz reszty danych produktu

koniec wink.gif

Można to jeszcze bardziej skomplikować dodając na przykład "słowniki" do danego atrybutu lub jakieś domyślne wartości czy przedziały czy typy możliwych wartości smile.gif
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.