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?