Ho bisogno di creare una tabella o un set di tabelle che necessiti di ospitare i dati transazionali di un servizio basato su abbonamento, in modo che determinate metriche possano essere interrogate in modo efficiente abbinate alla post-elaborazione necessaria per mettere insieme i dati per la presentazione (qualcosa come questo ).
Attualmente, i dati transazionali sono memorizzati in varie tabelle con schemi e schemi diversi che rendono impossibile interrogare e ottenere alcune informazioni necessarie. per esempio. Per un metodo di pagamento, una sottoscrizione e tutti gli eventi successivi vengono aggiornati sulla stessa riga in una tabella, perdendo la maggior parte dei dati storici.
Per ogni periodo indicato (ad esempio al mese), alcune delle metriche desiderate sono ...
- Numero di iscritti attivi
- Numero di nuovi abbonati
- Numero di cancellazioni
- Entrate ricorrenti (i pagamenti possono essere mensili o annuali)
- Metriche derivate che utilizzano più metriche di base (1-4): tasso di abbandono, costo dell'acquisizione, ecc. (potrebbe richiedere dati da altre fonti completamente diverse, ad esempio marketing)
Stavo pensando di creare una tabella generica che registra una riga per ogni transazione, come di seguito, in aggiunta alle tabelle esistenti. Penso che sarà sufficiente per ottenere numeri precisi, ma richiede comunque all'utente di effettuare più query (soprattutto per le metriche derivate) e di massaggiare i dati. Mi piacerebbe che cosa creo per essere il più possibile analista possibile pur essendo ottimale.
Qualcuno ha esperienza con questo modello di business e sta salvando dati transazionali ben strutturati per questo?
Tabella generica:
| id | user_id | platform | plan_type | action | amount |
---------------------------------------------------------