Abbiamo un'implementazione esistente in cui tutti gli utenti appartengono a un'organizzazione dipenderà dalla sottoscrizione dell'organizzazione, quindi se l'abbonamento ha finito tutti gli utenti appartengono a questa organizzazione non sarà in grado di accedere alla nostra applicazione web. Non saranno in grado di accedere a causa dell'abbonamento scaduto.
Schema DB di esempio per implementazione esistente:
Ora vogliamo implementare un abbonamento non solo per un'organizzazione ma anche per singoli utenti. Quindi ci saranno:
Prova (per 1 utente e con accesso limitato ad alcune funzionalità) Abbonamento 1 (per 1 utente) Abbonamento 2 (per 20 utenti) Abbonamento 3 (questa è un'impresa e dipenderà dal numero di utenti consentiti di un'azienda). In questo modo devo tenere traccia degli utenti che sono in abbonamento di prova con la loro data di inizio e di fine, ma c'è anche un problema che questo utente di prova ha un'organizzazione che nell'organizzazione di implementazione esistente ha permesso gli account e la data di rinnovo (data di scadenza della loro sottoscrizione).
Sto pensando di creare una tabella di sottoscrizione in cui aggiungerò user_id e organisation_id in questa tabella e includerò la data di inizio e di fine anche il tipo di sottoscrizione indipendentemente dalla versione di prova, abbonamento 1, abbonamento 2 o abbonamento 3. Ma I ' m preoccupato che questa sarebbe una brutta implementazione sapendo che la tabella dell'organizzazione ha già permesso agli account (quanti utenti potrebbero accedere alla nostra applicazione web) e alla data di rinnovo (che è la loro data di scadenza della loro sottoscrizione). Qualche suggerimento su questo? Lo apprezzerei molto.