Actualmente estoy en un debate con un compañero de trabajo sobre las mejores prácticas relacionadas con el diseño de la base de datos de una aplicación web PHP que estamos creando. La aplicación está diseñada para empresas, y cada empresa que se registre tendrá múltiples usuarios utilizando la aplicación.Aplicación web PHP: prácticas recomendadas de diseño de la base de datos mysql
Mi metodología de diseño es crear una nueva base de datos para cada empresa que se registre. De esta forma, todo es arena, modular y pequeño. La filosofía de mis compañeros de trabajo es poner a todos en una base de datos. Su argumento es que si tenemos más de 1000 compañías registradas, terminamos con más de 1000 bases de datos para tratar. Sin mencionar el lío que se convierte en Business Intelligence.
Por ejemplo, supongamos que la aplicación es un sistema de entrada de pedidos. Con bases de datos separadas, el tamaño de la tabla puede seguir siendo manejable incluso si cada empresa realiza más de 100 pedidos al día. En una aplicación de un solo segmento, las tablas pueden ser muy grandes muy rápidamente.
¿Existe una mejor práctica para esto? Intenté buscar en la web, pero no tuve mucho éxito. Enlaces, libros blancos y presentaciones de bienvenida.
Gracias de antemano,
The1Rob
El particionamiento de datos (mediante reglas de tabla de particiones) es, posiblemente, también otra opción, aunque a veces sea más complicado de administrar. Y, para evitar el uso de múltiples bases de datos, ¿DEBE saber que esto no afecta a la información? Uno puede unir/unir fácilmente las tablas apropiadas en las bases de datos e incluso crear vistas de bases de datos cruzadas que compilan todos los datos de informes que pueda necesitar. –
+1 Gran ejemplo del mundo real. –