Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: system rabatow dla grup klientow
Forum PHP.pl > Forum > Bazy danych > MySQL
trucksweb
tworze wlasnie modul rabatow dla grup klientow dla sklepu i pojawil sie przede mna problem.

zalozmy, ze firma moze dodawac dowolna ilosc rabatow dla grup:
poczatkujacy_klienci
aktywni_klienci
przy czym:
- rabat moze obowiazywac od - do
- dodatkowo moze obejmowac jakis przedzial wartosci koszyka z calej historii zakupow w sklepie

czyli wchodzimy sobie do ustawiania rabatow, ustawia nam sie data jutrzejsza bo chyba tak najlepiej zaczac naliczanie rabatow.
Wybieramy grupe "poczatkujacy_klienci" i okreslamy przedzial od jutra +7dni.

teraz pytanie, jak to zapisac w bazie, zeby potem ladnie przy zamowieniu i raportach wyciagnac wartosc rabatow ?

myslalem zeby miec dwie tabele:
discount
id_discount
discount
basket_history_value
date_from
date_to


spec_discount_group
id_user_group
id_discount


ograniczam przy edycji zmiane pola: discount,i date_to (nie mniejsza niz data nastepna od jutra)
nie wiem czy to jest dobre rozwiazanie.


moge miec takze rabaty indywidualne dla uzytkownikow. Tutaj bez ograniczen czasowych.
user
id_user
discount


teraz jak zapisywac historie zmian tej wartosc rabatu dla uzytkownika ?
zrobic nowa tabele
user_discount_history
id_user
discount
date

i przy kazdej zmianie robic insert do niej ?

ale wtedy moge miec tak
1, 20, 01-01-2010
1, 30, 02-01-2010
1, 60, 10-01-2010

czyli zniakaja mi jakies tam dni, a tego wolabym uniknac, zeby przy generowaniu raportow sie nie pomylic



mozecie mi doradzic ?
uupah5
pisząc z palucha:

Rabat
id
rabat_wartosc
rabat_typ (enum: wartosc,procent)
rabat_nazwa (dla marketoidów)
rabat_data_od (datatime)
rabat_data_do
rabat_wartosc_od
rabat_wartosc_do
aktywny (1/0)

Rabat_User_Grupa
id
id_rabat
id_user
id_grupa

sprawdzenie czy user ma prawo do jakiegoś rabatu, czy to z racji indywidualnego czy grupowego, to odwołanie się do Rabat_User_Grupa z id usera lub id grupy do jakiej należy
oraz do Rabat gdzie sprawdzamy dodatkowo czy now() between rabat_data_od and between rabat_data_do oraz wartosc_koszyka_usera between rabat_wartosc_od and rabat_wartosc_do oraz oczywiście aktywny=1

aplikacja powinna zadbać o rozwiązanie konfliktów typu - user ma kilka rabatów indywidualnych i grupowych, o różnych wartościach i typach (np 50% i -50zł)
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.