En una aplicación centrada en la base de datos que está diseñada para múltiples clientes, siempre he pensado que era "mejor" utilizar una sola base de datos para TODOS los clientes, asociando registros con los índices y claves adecuados. Al escuchar el podcast Stack Overflow, escuché a Joel mencionar que FogBugz usa una base de datos por cliente (de modo que si hubiera 1000 clientes, habría 1000 bases de datos). ¿Cuáles son las ventajas de usar esta arquitectura?¿Cuáles son las ventajas de usar una única base de datos para CADA cliente?
entiendo que para algunos proyectos, los clientes necesitan tener acceso directo a todos sus datos - en una aplicación de este tipo, es obvio que cada cliente necesita su propia base de datos. Sin embargo, para proyectos en los que un cliente no necesita acceder directamente a la base de datos, ¿hay alguna ventaja con el uso de una base de datos por cliente? Parece que, en términos de flexibilidad, es mucho más simple usar una sola base de datos con una sola copia de las tablas. Es más fácil agregar nuevas funciones, es más fácil crear informes y es más fácil de administrar.
Tenía mucha confianza en el método de "una base de datos para todos los clientes" hasta que escuché a Joel (un desarrollador experimentado) mencionar que su software utiliza un enfoque diferente, y estoy un poco confundido con su decisión ...
la gente que he oído citan que las bases de datos más lento con un gran número de registros, pero cualquier base de datos relacional con algún mérito no va a tener ese problema - en especial si se utilizan los índices y las claves adecuadas.
¡Cualquier entrada es muy apreciada!
Véase también [Una base de datos frente a múltiples bases de datos] (http://serverfault.com/questions/107731/one-database-vs-multiple-databases) en serverfault. –