Aggiornamento e downgrade dell'abbonamento ai clienti

2

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:

  1. Nellaprimaimmaginevieneaggiuntaunanuovarigaconlespecifichecomboesaledate
  2. 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

    
posta Ange1 26.09.2015 - 14:33
fonte

2 risposte

0

Poiché stai già aggiornando il campo enddate in modo selettivo per un rinnovo, non dovrebbe essere un problema aggiornare anche il campo enddate in caso di un downgrade.

Per poter rispondere alle domande / reclami dei clienti dopo un downgrade, ci sono diverse possibilità.
Uno dei più semplici sarebbe quello di aggiungere una colonna cancellation alla tabella con i pacchetti, registrando la data in cui il pacchetto è stato cancellato.
Un altro meccanismo, che fornisce tutti i dettagli quando qualcosa è stato cambiato, è quello di impostare un sistema di controllo per tali tabelle. Questo potrebbe anche esistere, ma se non lo fosse, un sistema di controllo nella sua forma più semplice è una tabella a cui aggiungi automaticamente una riga quando qualcosa viene cambiato in un'altra tabella per registrare ciò che è cambiato e quando. Le uniche modifiche apportate a una tabella di controllo sono inserimenti.

Se, come indicato, ci sono problemi organizzativi con l'aggiornamento della data di fine per un downgrade, la soluzione più semplice è aggiungere una colonna "cancellazione" con la data di cancellazione e aggiornare la logica che controlla se un pacchetto è acquistato da un cliente per tenere conto anche della colonna di cancellazione.

    
risposta data 28.09.2015 - 11:23
fonte
0

Sembra che ti imbatti in problemi in cui hai codificato un passaggio indiretto nella speranza che sia costante.

Dalla tua descrizione limitata, hai:

  • Un numero discreto di combinazioni possibili
  • Una o più combinazioni sono attive in qualsiasi momento.
  • Nell'ordinare una combo, un cliente specifica una data di fine nominale.

Quindi hai una lista di combinazioni, clienti con una cronologia degli ordini dove ogni cronologia include una data di attivazione, la combo ordinata e a data di fine nominale. L'ultima cronologia degli ordini è ciò che il cliente ha. Successivamente, si ottiene una nuova tabella di ID cliente e servizi attivi per la fornitura.

La mia ipotesi è che tu abbia più complicazioni che non stai condividendo, o semplicemente tanta parte di codice che cerca di indovinare l'indirezione che non è possibile risolvere.

    
risposta data 26.09.2015 - 19:10
fonte