Ho creato questa app web (php & mysql) che memorizza informazioni per varie organizzazioni (attualmente circa 20 clienti).
Lo scenario attuale memorizza le informazioni relative al client in singoli database, quindi ci sono 20 database client e 1 database master.
Uno dei principali vantaggi qui è che quando ogni db del client è isolato, la numerazione degli artefatti del client (report, audit) ecc. Viene sequenziata; dare ai nostri clienti un senso di sicurezza.
Ogni DB ha circa 15 tabelle e la maggior parte delle righe in una tabella sono circa 2000. Si prevede che questo verrà sommato fino a 5000 record, al massimo.
Gestire una singola modifica a livello di db significa cambiare 20 database, ma nel raro caso in cui ho bisogno di apportare una tale modifica, utilizzo uno script che lo fa in una singola chiamata di funzione.
Siamo in un accordo di hosting condiviso e il nostro ISP ci fornisce un numero limitato. di database; ed è quello che mi ha portato a pensare in termini di centralizzazione del database; in modo che TUTTI i dati del client possano essere archiviati nel database principale.
Naturalmente, alcune importanti questioni che emergono sono:
un. Mantenimento della sequenza di artefatti, (questo potrebbe essere risolto creando una chiave di riferimento aggiuntiva) b. Velocità e prestazioni (nel qual caso posso creare indici per velocizzare le cose) c. Sicurezza: questo verrà gestito come ogni query che recupera le informazioni sul client. seguirà anche il loro client_id
In futuro, potremmo aver bisogno di considerare il confronto di set di dati di un'organizzazione con un'altra, ma credo che ciò possa essere realizzato anche su un db centralizzato. Sono un po 'propenso (per motivi di prestazioni e manutenibilità) a passare a un database centralizzato.
Pensi che passare a un database centralizzato abbia più senso che restare come siamo (su singoli database)?
Grazie per il tuo consiglio.