Esta es una pregunta que quizás te hayas hecho alguna vez cuando estás desarrollando tus aplicaciones ya que Contabilidad, Compras, Facturación, Producción, Ventas, Sueldos, etc. tienen algunas tablas que pueden compartir, que pueden ser comunes.

Entonces: ¿cada aplicación debe tener su propia Base de Datos? ¿o es mejor usar una sola Base de Datos para todas las aplicaciones?

Aunque la respuesta podría variar dependiendo de cada circunstancia particular, en general lo correcto es lo siguiente:

  • Si en todas las aplicaciones se registrarán los datos de una sola Empresa entonces es mejor usar una sola Base de Datos
  • Si en alguna aplicación se registrarán los datos de dos o más Empresas, entonces una Base de Datos por cada empresa

Ventajas de usar una sola Base de Datos

  • Relacionar a las tablas entre sí (con JOIN, UNION, etc.) es muy fácil
  • Un solo backup copia todo
  • Un solo restore restaura todo
  • Los mismos metadatos se usan en todos los casos

Desventajas de usar una sola Base de Datos

  • Si allí tienes los datos de varias empresas, una fiscalización gubernamental a una empresa les mostraría los datos de todas las demás empresas porque ellos llevarán la Base de Datos completa, no solamente los datos que corresponden a una sola empresa
  • Si se corrompe la Base de Datos pueden quedarse inaccesibles los datos de todas las empresas
  • Si roban la Base de Datos se roban los datos de todas las empresas
  • El tamaño de la Base de Datos será muy grande
  • Algunos procesos pueden ser muy lentos
  • Si un curioso accede al nombre y la contraseña de un usuario puede ver, cambiar, o borrar los datos de todas las empresas

Ventajas de usar varias bases de datos

  • Los datos de cada Empresa se manejan de forma independiente. Una fiscalización gubernamental solamente afectará a una Empresa
  • Si se corrompe una Base de Datos solamente esa es afectada
  • Si se roba una Base de Datos solamente una Empresa es afectada
  • El tamaño de cada Base de Datos es menor
  • Ningún proceso será muy lento
  • Si un curioso accede al nombre y a la contraseña de un usuario podrá ver, cambiar o borrar los datos de una sola empresa

Desventajas de usar varias bases de datos

  • Los metadatos pueden estar desactualizados, ser distintos en cada una de las bases de datos
  • Hacer un backup completo lleva más tiempo
  • Restaurar todos los backups tomará más tiempo
  • Es más complicado relacionar tablas de una Base de Datos con las tablas de otra Base de Datos

Ejemplos:

  • Una aplicación de Contabilidad que será usada en un estudio contable y por lo tanto desde esa aplicación se contabilizarán los datos de varias empresas debería tener una Base de Datos por cada empresa.
  • Una aplicación de ERP que se instalará dentro de una empresa y que constará de los módulos de Contabilidad, Compras, Ventas, Facturación, Producción, Sueldos, etc., debería tener una sola Base de Datos