Tengo una aplicación web en la que estoy trabajando actualmente que utiliza una base de datos MySQL para el back-end, y necesito saber qué es mejor para mi situación antes de continuar.¿Debo usar tablas planas o una base de datos normalizada?
En pocas palabras, en esta aplicación los usuarios podrán construir sus propios formularios con cualquier número de campos (deciden) y ahora lo tengo todo almacenado en un par de tablas vinculadas por claves externas. Un amigo mío sugiere que para mantener las cosas "fáciles/rápidas" debería convertir el formulario de cada usuario en una tabla plana para que la consulta de los datos se mantenga rápidamente (en caso de un gran crecimiento).
¿Debería mantener la base de datos normalizada con todo agrupado en tablas relacionales con claves externas (índices, etc.) o debería construir tablas planas para cada nueva forma que crea un usuario?
Obviamente, algunos aspectos positivos de la creación de tablas planas son la separación de datos (seguridad) y se reducirán las velocidades de consultas. Pero en serio, ¿cuánto ganaré con esto? Realmente no quiero 10000 tablas y estar cayendo, alterando y agregando todo el tiempo, pero si será mejor que lo haré ... solo necesito algo de entrada.
Gracias
Normalizar hasta que duela. :) – shamazing
No es una respuesta real ... pero siempre puedes usar Wikipedia como guía. Aquí está el esquema de la base de datos de Wikipedia: http://commons.wikimedia.org/wiki/File:Mediawiki-database-schema.png – Dragontamer5788
@shamazing y luego se desnormaliza hasta que funciona. 80)) – Keng