Sto creando un sito web che ha a che fare con le transazioni monetarie. Tutto andava bene fino a quando mi sono imbattuto nel dilemma
Dovrei avere una tabella per memorizzare tutta la cronologia delle transazioni o dovrei avere una tabella separata per ogni utente?
Ho provato a pensare logicamente la soluzione migliore e questo è quello che pensavo:
Una tabella per tutti
- Praticamente quando ogni altro dev dovrebbe fare
- E se avessi 100.000 transazioni all'interno?
- Questo rallenterebbe l'analisi per ciascun utente
- MariaDB dovrebbe fare molto più lavoro
Una tabella per ogni utente
- Ogni utente è isolato
- MariaDB può eseguire query più rapidamente
- Analisi dei dati semplice
- Tuttavia, che succede se 10.000 utenti hanno una tabella?
- Ciò invaliderebbe il database (non un grosso problema se potesse gestirlo)
Non trovo nulla di sbagliato nell'usare una tabella per ogni utente, ma è una tachnique comune progettare un database come quello?
Ho trovato questo post qui: Quali sono i vantaggi / svantaggi della creazione di un nuovo set di tabelle per ciascun utente?
che praticamente dice che è una pessima idea avere un tavolo multiplo ma è davvero importante dal mio caso
- Non cambierò mai la struttura
- Non modifico mai i dati all'interno, aggiungo solo nuove righe
- Migliorerò la sicurezza (principio del privilegio minimo)