Mysql
 sql >> Database >  >> RDS >> Mysql

Buona pratica per dividere i dati su più database?

"Buona pratica" è una di quelle frasi che ci permette di far sembrare i nostri pregiudizi più importanti di quanto non siano in realtà...

In generale, vuoi conservare insieme le cose che appartengono insieme. Se hai un unico sistema informativo, che gestisce tutto per un'azienda e le entità che gestisci sono correlate tra loro - i clienti hanno ordini, gli ordini hanno venditori e prodotti - potresti sostenere che appartengono insieme. Se invece ti accorgi di avere "isole" di tabelle che non si collegano ad altre tabelle, forse non sono collegate tra loro.

Dal punto di vista della manutenibilità, la gestione di più database significa più backup, più routine di manutenzione e più profili di sicurezza da gestire.

Da un punto di vista della leggibilità, cercare in diversi database per trovare la tabella che ti interessa è probabilmente una cosa negativa, ad esempio, dove c'è una tabella di join molti-a-molti tra "clienti" e "dipendenti" - ad es. team di vendita - dove vive quel tavolo? Nel database "cliente" o "dipendente"?

Da un punto di vista dell'affidabilità, non sono sicuro che tu possa imporre vincoli di chiave esterna tra i database.

Non riesco davvero a pensare a nessun vantaggio nel farlo, quindi direi che è una cattiva idea.