![]() |
![]() ![]() |
![]() |
![]() ![]()
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? |
|
|
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 17:16 |