El proyecto actual que heredé principalmente gira en torno a una tabla no normalizada. Hay algunos intentos de normalización, pero las restricciones necesarias no se pusieron en práctica.¿Cómo debo abordar la migración de datos de un diseño de base de datos "malo" a un diseño utilizable?
Ejemplo: en la tabla Proyecto, hay un nombre de cliente (entre otros valores) y también hay una tabla de clientes que solo contiene nombres de clientes [sin claves en ninguna parte]. La tabla de clientes solo se usa como un conjunto de valores para ofrecer al usuario al agregar un nuevo proyecto. No hay una clave principal en la tabla de clientes o una clave externa.
"Patrones de diseño" como este es común a través del estado actual de la base de datos y en las aplicaciones que lo utilizan. Las herramientas que tengo a mi disposición son SQL Server 2005, SQL Server Management Studio y Visual Studio 2008. Mi enfoque inicial ha sido determinar manualmente qué información necesita normalización y ejecutar consultas Select INTO. ¿Hay un mejor enfoque que caso por caso o de todos modos esto podría ser automático?
Editar: Además, he descubierto que un "número de orden de trabajo" no es una identidad de campo (Autonumérico, único) y que se generan de forma secuencial y son únicos para cada orden de trabajo. También hay algunas lagunas en la numeración existente, pero todas son únicas. ¿Es el mejor método para escribir un procedimiento de almacenamiento generar filas ficticias antes de migrar?
¿Eres el único desarrollador en este proyecto, o tienes que preocuparte por romper las cosas a las que otros desarrolladores y clientes acceden? – Pulsehead
Soy el único desarrollador. No ha habido desarrolladores serios en esta compañía (10 millones brutos anuales de mi departamento). Solo las personas que han trabajado en esto probablemente ni siquiera sabían qué era un RDBMS. – llamaoo7