Sto sviluppando un'applicazione web che utilizza MS SQL per vari dati: inclusi utenti, account utente, licenze utente, prezzi di licenza, fatture.
Devo registrare l'utilizzo in tempo reale degli utenti del sistema e utilizzarlo per la fatturazione mensile: ad es. registra ogni volta che un utente riceve una pagina / URL specifica e fattura gli utenti alla fine del mese in base al numero di pagine che hanno recuperato.
-
Devo scrivere questi eventi di registro in una tabella nel mio database MS SQL?
-
Devo scrivere questi eventi di registro in un file di registro non solo per l'aggiunta di SQL?
-
Devo scrivere questi eventi di registro in un file di registro diverso per ciascun utente?
Questo non è un sito Web ad alto volume: ad esempio, un massimo di 10.000 utenti ciascuno eseguono una media di 5 eventi di registrazione / giorno = > 50.000 eventi / giorno = 30 eventi / minuto = 18.000.000 di eventi / anno.
Chiedo perché entrambe le opzioni sembrano valide e non vedo se si ha un chiaro vantaggio.
I dati associati a un evento fatturabile sono semplici, ad esempio:
- ID utente (relazione chiave esterna per la tabella Utenti in SQL)
- Data e ora
- URL della pagina fatturabile
La mia risposta a questa domanda è la seguente:
-
Alcuni vantaggi della scrittura del registro in una tabella di database:
- Integrità relazionale: ad es. gli eventi registrati sono associati a ID utente validi (definendo l'ID utente come chiave esterna tra le tabelle)
- Facile da leggere per la fatturazione: ad es.
SELECT COUNT GROUP BY
per ottenere un conteggio del numero di eventi di registro per utente
-
Alcuni vantaggi della scrittura nel file di registro:
- Prestazioni più semplici: SQL viene utilizzato meno spesso, ad es. solo per gli eventi di accesso degli utenti e in gran parte utilizzato solo per la lettura
- Gestione più semplice: è più facile archiviare i vecchi dati, ad es. a fine anno, spostando i vecchi file di registro anziché eliminando / archiviando dal database
Per favore fatemi sapere se la mia risposta è sbagliata; o esagera l'importanza di qualcosa; o ha dimenticato alcune considerazioni importanti.
E / o fammi sapere qual è la tua risposta, se è diversa dalla mia.