Mam usługę, którą rozliczana jest abonamentowo, czyli kupujesz bezterminowo i co miesiąc płacisz abonament. Są różne warianty pakietów. Jednak możesz w dowolnym momencie zmienić pakiet na inny, data aktywacji nowego zależy od różnych czynników, dla uproszczenia załóżmy że to pierwszy dzień kolejnego miesiąca. Są pakiety indywidualne i grupowe, czyli można usługę współdzielić z innymi osobami. Jest możliwość zmiany pakietu z indywidualnego na grupowy.
Zastanawiam się jak podejść do tematu składowania danych, kiedy zmienia się pakiet.
- mam tabelkę zamówienie i podrzędną na pakiet z polami aktywny od - do, czyli wszystkie zmiany pakietów są cały czas jako jedno zamówienie
- informację o pakiecie i aktywności mam w zamówieniu, a zmiana pakietu powoduje na poziomie bazy stworzenie nowego zamówienia aktywnego od następnego mies., a stare zamówienie dostaje datę końca na ostatni dzień aktualnego mies.
Ktoś robił podobny system i może jakieś plusy i minusy obu podejść wskazać?
Ja widzę takie:
add 1:
- cały czas mam jedno zamówienie
- wszystkie dane zależne z tabel podrzędnych zamówienia nie wymagają kopiowania
add 2:
- wszystkie inne dane zależne, powiązane z zamówieniem także należy skopiować, czyli dane abonentów etc.