Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obsługa zamówień
Forum PHP.pl > Forum > PHP
Edpl
Witam ponownie,
właściwie nie wiedziałem czy temat dać tutaj czy do baz danych... bo w sumie problem nie jest taki skonretyzowany. Przygotowuje sobie tabele obsługująca zamowienia. Posiada ona nastepujace kolumny: id, id_produktu, ilosc, dane_zamawiajacego, wartosc_zamowienia. Wszystko byloby ok... ale co gdy klient zamowi np 4 jablka i do tego 2 gruszki? Mozna dodac jeszcze sto kolum typu: id_produktu1, ilosc1, id_produktu2,ilosc2... itd, ale to rozwiazanie jest totalnie pozbawione sensu. Mozna tez oddzielac przecinkiem np id_produktu: jablko,gruszka; ilosc: 4,2. Tylko wtedy nie wiem jak sie zabrac do wyswietlenia tych danych (id to tak naprawde numer produktu... nazwa itp pobierane sa z innej tabeli). Jak podejsc do tego problemu? Moze jakies inne rozwiazanie?

Edit: jeszcze jedno mi przyszlo do glowy. Dla kazdego osobnego produktu nowy wiersz z tym samym id zamowienia. tylko wtedy to id nie moglo by byc unikalne... co tez mi za bardzo nie pasuje.

Z gory dzieki i czekam na pomysly.

Another idea: id produktow i ilosc z wykorzystaniem serialize. Tylko nie wiem czy zrobic to jako array(jablko, gruszka) i array(4,2) czy w jednej kolumnie - array( 'jablko' => 4, 'gruszka' =>2)
woj_tas
Tabela zamówienia: id, wartosc, data_zlozenia ...

Tabel zamówienia_towary: id, produkt_id, zamówienie_id, ilosc, wartosc ...

Zamówienie to jeden wiersz w tabeli zamówienia oraz dla każdego zamówionego towaru po jednym wierszu w tabeli zamówienia_towary
Edpl
Dzieki, takze juz mam w czym wybierac... dalej nie wiem co jest najlepszym rozwiazaniem. Jakie sa wady i zalety Twojego rozwiazania, oraz pomyslu z serializowaniem. Dane przeciez i tak nie beda wyciagane 'na surowo'.
dr_bonzo
Czy serializowac czy nie - zalezy jak chesz sie tymi danymi bawic, zliczac ilosc zamowien na klienta, ilosc zamowien na dany produkt, itc- to nie serializuj tych danych; jesli jednak chcesz je wyswietlac pojedynczo na 1 stronie [np dane jednego zamowienia] to mozesz serializowac

A co do przechowywania pozycji zamowienia, to tak jak mowil woj_tas.

Czyli:

- zamowienie
[id_klienta, dane_klienta, ...]
- pozycja_zamowienia
[id_zamowienia, id_produktu, ilosc, cena, ....]
- produkt
[id, ...]

co do serializacji, o ktorej mowilem to chodzilo mi o serializowanie np. danych klienta w zamowieniu, a nie calego zamowienia w jednym rekordzie.
Edpl
serializowac chce tylko zamowione produkty i ilosc (z jednej tablicy). Co do wyswietlania... to wydaje mi sie ze najczytelniejszym sposobem bedzie wlasnie wyswietlanie danych jednego zamowienia na jednej stronie. Listowane beda tylko - id zamowienia, data i nazwa klienta (czyli nie serializowane dane). Czyli dane w tabeli trzymalbym w nastepujacy sposob:
zamowienia
[id, data, nazwa_klienta, dane_klienta, zamowione_produkty (te dane sa wlasnie serializowane), laczna_cena]

W zalozeniu ze nie ma obslugi kont uzytkownikow. Jesli dodam to stworzy sie jakies nowe kolumny tak zeby wszystko dzialalo. I sklep nie posiada czegos takiego jak magazyn (ilosc dostepnych produktow itp). Jest to system pisany na potrzeby malego sklepu sprzedajacego produkty z jednej kategorii wiec to nie bedzie potrzebne.
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.