Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ayuda Normalización

Estas en el tema de Ayuda Normalización en el foro de Mysql en Foros del Web. Hola a todos. Tengo un pequeño problema en la deficion de una BD, tratare de explicar mi problema con un ejemplo sencillo. Creo. Soy una ...
  #1 (permalink)  
Antiguo 08/03/2010, 14:00
Avatar de Fdo88  
Fecha de Ingreso: febrero-2010
Mensajes: 47
Antigüedad: 14 años, 9 meses
Puntos: 0
Ayuda Normalización

Hola a todos.
Tengo un pequeño problema en la deficion de una BD, tratare
de explicar mi problema con un ejemplo sencillo. Creo.

Soy una empresa manufacturera que realiza cualquier tipo de proyecto y un cliente me solicita el siguiente proyecto

Proyecto Salon
Item 1 - Sillas 200
Item 2 - Mesa 50
Item 3 - Tablero 100

En la cotizacion inicial envio un valor con los tres item,el cliente la revisa y pide eliminar el item 2, entonces el 3 debe convertirse en dos,en este momento debo tener dos registros; el inicial y el nuevo, luego el cliente solicita otro item, entonces debo tener 3 registros; el inicial, el de la cancelacion del item 2 y la adicion del item 3.

Tendria una redundancia de datos en la tabla que guarda el registro de las cotizaciones??

Que puedo hacer??

De antemano muchas gracias y espero cualquier ayuda.
Gracias.
  #2 (permalink)  
Antiguo 13/03/2010, 16:15
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 18 años, 2 meses
Puntos: 16
Respuesta: Ayuda Normalización

NO entendi tu problema :S
__________________
Msn: [email protected]
  #3 (permalink)  
Antiguo 13/03/2010, 17:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
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)

Etiquetas: bases, normalizacion, redundancia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:48.