Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/03/2010, 17:21
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Ayuda Normalización

Estás confundiendo lo que ves en la pantalla, con lo que se almacena en la base.
En principio, si casa subitem del detalle de proyecto se desactiva, pero no se elimina físicamente de la tabla, al borrar el item 2 y agregar otro, en realidad no tendrás {1; 2; 3}, sino {1; 2; 3; 4}, con el 2 desactivado e invisible en el formulario.
Si se eliminan físicamente, lo que debe quedar al ingresar nuevamente uno en la base, es {1; 3; 4}, porque lo que se ven en la pantalla es un tema de representación, y no de bases de datos. Lo que hagas en la base debe tener coherencia para la base. Si luego quieres que en pantalla, y en las impresiones sea numerado consecutivamente, hazlo en el programa. No en la base.
Además, ten en cuenta, que hasta ese momento solamente estás tratando con una cotización, y no con un pedido formal, por lo que solamente tiene importancia documentaria. Cuando finalmente el proyecto esté aceptado, entonces se guardará (al menos debería hacerse así) en otra tabla, donde solamente se almacenarán los subitems válidos, y allí si serán numerados en forma incremental. Antes de eso, no tiene trascendencia.

Tip final: Nunca debe quedar inconsistencia. Tu, como diseñador de la base, debes resguardar la consistencia, más allá de las cosas que los programadores inventen o supongan que necesiten o que supongan que "se debe hacer" . Tu función es darles datos coherentes; el cómo lo logres debe ser invisible a los programadores que solamente deben saber qué es lo que deben entregar y qué es lo que van a recibir.
El resto es asunto de los DBA.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)