Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]dodatkowe atrybuty do wpisu
elmozaur
post
Post #1





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


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
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


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


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
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 - 17:57