Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Koszty dostawy zalezne od kategorii produktu
swiezak
post
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.08.2011

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


Mam problem z zaprojektowaniem struktury bazy danych, gdzie koszt dostawy jest zalezny od kategorii, do ktorej nalezy produkt.


Zalozmy, ze koszt dostawy dla wanien jest nastepujacy:
dostawa | platnosc | koszt
odbior osobisty | platnosc gotowka | 0 zl
odbior osobisty | platnosc przelewem | 0 zl
kurier | platnosc przelewem | 100 zl
kurier | platnosc za pobraniem | 120 zl
dostawa firmowa | platnosc gotowka | 40 zl
dostawa firmowa | platnosc przelewem | 40 zl

Dla luster:
dostawa | platnosc | koszt
odbior osobisty | platnosc gotowka | 0 zl
odbior osobisty | platnosc przelewem | 0 zl
kurier | platnosc przelewem | 20 zl
kurier | platnosc za pobraniem | 30 zl
dostawa firmowa | platnosc gotowka | 40 zl
dostawa firmowa | platnosc przelewem | 40 zl

Produkt moze nalezec do kilku kategorii, wiec majac w koszyku kilka produktow z kilku kategorii, system powinien naliczac najwyzszy koszt dostawy, tzn. jesli klient zamowil lustro, dozownik i wanne koszt dostawy dla kuriera, platnosc przelewem powinien wyniesc 100 zl.

W tej chwili mam tabele shipments, ktora przechowuje id, nazwe dostawy i jej koszt.

Oprocz tego tabele platnosci:
id | shimpment_id | name

Platnosci sa polaczone z dostawami relacja wiele do jednego.

Oprocz tego jest stworzona tabela laczaca, shimpents_categories, ktora przechowuje id dostawy i id kategorii.

Na chwile obecna bedzie bardzo duzo mozliwosci wyboru dostawy i platnosci, kategorii jest 100 i zastanawiam sie, czy da rade jakos to wszystko uproscic. W koszyku musze sprawdzac kazdy produkt do jakiej kategorii nalezy, wybrac najwyzszy koszt dostawy dla niego z tabeli shipments, sprawdzic pozostale produkty i dopiero na samym koncu obliczyc finalny koszt dostawy. Jak widac, sporo jest operacji.


Czy ktos z Was moze zaproponowac jakies bardziej optymalne rozwiazanie? Moze jakis inny model relacyjny?
Go to the top of the page
+Quote Post
stefano_F
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 4
Dołączył: 1.02.2013

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


Witam,
ja bym to zrobił tak:

schematy kosztów dostawy (uproszczę):
1) kurier 100 zł, kurier pobranie 140 zł, "waga" 20
2) kurier 20 zł, kurier pobranie 30 zł, "waga" 10
3) kurier 70 zł, kurier pobranie 10zł, "waga" 15

W schematach dodałbym kolumnę "waga" która określałaby "poziom kosztów" im wartość w polu większa tym koszt większy.
Robiąc identyfikatory wagi co np. 10 możesz spokojnie wprowadzić później schemat kosztów dostawy jakiś pośredni,
tak jak w moim przykładzie że 3 jest tańszy od 1 ale droższy od 2.

Każdy produkt musi być przypisany do kategorii.
Dla kategorii przypisujesz schemat kosztów dostawy, np.
- wanny - 1
- lustra - 2
- baterie - 3

Jak klient wybierze produkty, to po sprawdzeniu do jakiej kategorii należą, wyszukasz id schematu kosztów dostawy, który ma maksymalną "wagę".
Ten schemat przypiszesz do zamówienia.



Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.09.2025 - 17:16