Sono rimasto bloccato a un requisito troppo a lungo per gestirlo: (.
La nostra azienda sta aumentando il numero di clienti che desiderano aggiornare o downgrade della propria sottoscrizione. Per ora, la relazione cliente-abbonamento è la seguente:
Every Customer has its own Combo, like the following:
EveryComboisbindtoseveralpackages:
Quandounclientedesideravaaggiornarelasuacombo,ilrepartoITdovevaaggiungeremanualmenteilpacchettodiaggiornamentoconlespecifichedelladatadiinizioedifine.Poichéquestaeraunarichiestararaallavolta,nonèstatopensatoaunasoluzioneautomatica.Ora,inAggiornamento,sonoriuscitoadaggiungereunaltropacchettochehaiprodottimancanti.Ilproblemaèsuldowngrade.Ilmiopensieroinizialeeradimodificareilcampodifinedelpacchettochedeveesserecancellato,inmodochel'applicazionenonloleggessepiù.Maforsenonèunabuonaideasovrascrivereidatiesistenti,perchéinfuturosaràimpossibilecapireseilcampodifinecampoèstatomodificatopererroreodiproposito.Poichél'applicazioneconsegnailprodottotramiteilpacchetto,leggendolasuadatadiscadenza,comepossoannullareilpacchettorichiestosenzasovrascriverlo?
Modifica
Seilclientehabisognodirinnovareiservizi,cisonoduepassaggi:
- Nellaprimaimmaginevieneaggiuntaunanuovarigaconlespecifichecomboesaledate
- Nellasecondaimmagine,
un.selanuovacomboèugualeaquellaprecedente,cambialadatadifineperciascunpacchettoinbasealladurata
b.selanuovacomboèdiversadaquellavecchia,inquelcaso,ovengonoaggiuntiinuovipacchetti,equellivecchinoncambiano(questoèilcasoquandolanuovaelavecchiacombononhannopacchettiincomune)o
c.ipacchettisonomodificaticomemenzionatoalpuntoa)tranneunpacchetto,chenonèinclusonellanuovacombo.Questoèilcasoincuisolounpacchettononrinnovaladatadifine(questoèilcasoperunaggiornamento)
Odovreiandareavanticonl'idea"Modifica campo"?
UPDATE: Come una delle possibili soluzioni, stavo pensando di aggiungere un campo di database, che avrebbe attivato o disattivato uno o più pacchetti. Nel frattempo, ho creato una tabella che salva la coppia di combo e i pacchetti che li differenzia. Non so se questo è un buon approccio, al fine di tenere traccia di tutto ciò che accade nell'esperienza dell'utente