He creado esta aplicación web (php y mysql) que almacena información para varias organizaciones (aproximadamente 20 clientes actualmente).
El escenario actual almacena información relacionada con el cliente en bases de datos individuales, por lo que hay 20 bases de datos de clientes y 1 base de datos maestra.
Una de las principales ventajas aquí es que a medida que cada cliente db está aislado, se secuencia la numeración de los artefactos del cliente (informes, auditorías), etc. dando a nuestros clientes una sensación de seguridad.
Cada base de datos tiene aproximadamente 15 tablas, y la mayoría de las filas en una tabla son alrededor de 2000. Se espera que esto supere los 5000 registros, como máximo.
Administrar un solo cambio de nivel de base de datos significa cambiar 20 bases de datos, pero en el raro caso de que necesite hacer dicho cambio, utilizo un script que hace esto en una sola llamada de función.
Estamos en un acuerdo de alojamiento compartido, y nuestro ISP nos proporciona un número limitado. de bases de datos; y eso es lo que me llevó a pensar en términos de centralizar la base de datos; para que TODOS los datos del cliente puedan almacenarse en la base de datos maestra.
Por supuesto, algunos problemas importantes que surgen son:
a. Mantener la secuencia de artefactos (esto podría solucionarse creando una clave de referencia adicional) b. Velocidad y rendimiento (en cuyo caso puedo crear índices para acelerar las cosas) c. Seguridad: esto se administrará como cada consulta que obtenga información del cliente. también rastreará su client_id
En el futuro, podríamos necesitar comparar los conjuntos de datos de una organización con otra, pero creo que eso también se puede lograr en una base de datos centralizada. Estoy algo inclinado (por razones de rendimiento y mantenimiento) a pasar a una base de datos centralizada.
¿Crees que pasar a una base de datos centralizada tiene más sentido que permanecer como estamos (en bases de datos individuales)?
Gracias por su consejo.