Principales respuestas
La manera adecuada de eliminar un registro de una tabla

Pregunta
-
No tengo mucha experiencia en programación y yo estoy acostumbrado ya sea en una aplicación de escritorio o web a eliminar determinado registro de la tabla usando un Delete. Pero yo ver saber si existe una manera de recuperar el registro o es que debo usar un Update para cambiar el estatus del registro en lugar de eliminarlo directamente?. Es decir si tengo una tabla de productos manejar un estatus para que al momento de registrar el producto este en 0 y al momento de eliminar solo haga un update y le cambie el estatus. Espero obtener sugerencias, Muchas gracias.miércoles, 13 de agosto de 2014 1:39
Respuestas
-
Tal y como especificas el marcar el registro con un flag es un "borrado lógico". Eso tiene sentido para no perder la trazabilidad de ciertos registros. Por ejemplo. Creas un producto y de ese producto creas pedidos. Puedes "borrar lógicamente" el producto para que más adelante puedas consultar datos sobre qué productos se han dado de baja y por qué motivo y cuántos pedidos se hicieron....etc inclusive para hacer diferentes informes
Veo bien que hagas empleo de el campo status, es más yo lol recomiendo. Espero hayan más respuestas para que te aclaren un poco más tu duda
Espero este enlace te ayude también
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Propuesto como respuesta Miguel.Vazquez.MSDNModerator jueves, 14 de agosto de 2014 18:26
- Marcado como respuesta Miguel.Vazquez.MSDNModerator viernes, 15 de agosto de 2014 14:53
miércoles, 13 de agosto de 2014 6:23Moderador -
hola
lo que planteas es valido cuando una entidad tiene relacion con otras, imagino que un producto sera parte de un detalle de compras, tendra ventas, ingresos de stock, etc
es logico que si borras fisicamente el registro deberias antes eliminar la informacion de sus relaciones, es por eso que se marca con un estado
hay otros registros que esto no sucede y puede eliminarlos fisicamente, por eso deberias analizar la entidad y decidir si borras fisica o logicamente
es correcto lo lo planteas solo se pone un campo digamos de nombre "eliminado", "activo", etc que sea del tipo bool, o bit si usas sql server que tendra un true/false o 0/1, solo realizas un UPDATE sobre este campo para desactivar o eliminar logicamente el registro
por supuesto despues en otros puntos de tu aplciacion al listas deberias usar un filtro WHERE activo = 1, digo para usar solos los activos
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Miguel.Vazquez.MSDNModerator jueves, 14 de agosto de 2014 18:26
- Marcado como respuesta Miguel.Vazquez.MSDNModerator viernes, 15 de agosto de 2014 14:53
miércoles, 13 de agosto de 2014 11:57
Todas las respuestas
-
Tal y como especificas el marcar el registro con un flag es un "borrado lógico". Eso tiene sentido para no perder la trazabilidad de ciertos registros. Por ejemplo. Creas un producto y de ese producto creas pedidos. Puedes "borrar lógicamente" el producto para que más adelante puedas consultar datos sobre qué productos se han dado de baja y por qué motivo y cuántos pedidos se hicieron....etc inclusive para hacer diferentes informes
Veo bien que hagas empleo de el campo status, es más yo lol recomiendo. Espero hayan más respuestas para que te aclaren un poco más tu duda
Espero este enlace te ayude también
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
- Propuesto como respuesta Miguel.Vazquez.MSDNModerator jueves, 14 de agosto de 2014 18:26
- Marcado como respuesta Miguel.Vazquez.MSDNModerator viernes, 15 de agosto de 2014 14:53
miércoles, 13 de agosto de 2014 6:23Moderador -
hola
lo que planteas es valido cuando una entidad tiene relacion con otras, imagino que un producto sera parte de un detalle de compras, tendra ventas, ingresos de stock, etc
es logico que si borras fisicamente el registro deberias antes eliminar la informacion de sus relaciones, es por eso que se marca con un estado
hay otros registros que esto no sucede y puede eliminarlos fisicamente, por eso deberias analizar la entidad y decidir si borras fisica o logicamente
es correcto lo lo planteas solo se pone un campo digamos de nombre "eliminado", "activo", etc que sea del tipo bool, o bit si usas sql server que tendra un true/false o 0/1, solo realizas un UPDATE sobre este campo para desactivar o eliminar logicamente el registro
por supuesto despues en otros puntos de tu aplciacion al listas deberias usar un filtro WHERE activo = 1, digo para usar solos los activos
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina- Propuesto como respuesta Miguel.Vazquez.MSDNModerator jueves, 14 de agosto de 2014 18:26
- Marcado como respuesta Miguel.Vazquez.MSDNModerator viernes, 15 de agosto de 2014 14:53
miércoles, 13 de agosto de 2014 11:57