![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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 ![]() 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 ![]() 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 ![]() 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 ![]() -------------------- 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... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 17:57 |