sql >> Base de Datos >  >> RDS >> Mysql

Diseño de base de datos:una base de datos grande para todos los clientes o muchas bases de datos pequeñas

Una pregunta que me gustaría que respondiera es:¿alguna vez necesita ver datos de todos los clientes para sus propios informes o uso? En este caso, debe ir con el número uno o tendrá una pesadilla para obtener buenos informes.

¿Va a hacer alguna personalización por parte del cliente? Esto indicaría que separar las cosas podría ser una mejor opción. Si nunca va a personalizar, entonces no se separe.

He trabajado con sistemas en todas estas opciones y la primera es, con diferencia, la mejor para el mantenimiento a largo plazo. Sin embargo, todos son viables si está organizado y planifica bien. Si elige la opción separada, debe poder enviar cambios a todos los clientes y, por lo tanto, debe realizar cambios en la base de datos a través de scripts que se mantienen en el control de código fuente. Es posible que incluso necesite mantener un control de código fuente por versión de la base de datos, para que los clientes puedan optar por actualizar o no. En la opción 1, por supuesto, nadie tiene la opción de permanecer en la versión anterior. Si eso se ajusta mejor a las necesidades de su negocio, es una ventaja para la opción 1.

Estoy totalmente de acuerdo con Ollie Jones, si usa la opción uno, debe tener un buen diseño de seguridad de la base de datos para evitar que los clientes vean los datos de otros clientes. Una vez movimos un cliente de un servidor donde era el único cliente a una base de datos compartida y solo un proceso que no solicitó el ID_cliente (no era necesario en el sistema anterior y los desarrolladores se habían vuelto descuidados) terminó enviando un correo electrónico a todos los representantes de ventas de todos los demás clientes con información sobre el primer cliente. Esto le costó a la empresa mucho dinero (tanto para solucionar el problema como para enviar disculpas por correo electrónico y como resultado casi perdimos un cliente y tuvimos que darles algunas reducciones de costos para mantenerlos) y muchas disculpas serviles y el desarrollador apenas por poco. echaba de menos perder su trabajo. Deja que esta sea una lección que no aprendas de la manera difícil.