locked
La manera adecuada de eliminar un registro de una tabla RRS feed

  • 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

    No se recomienda borrar datos


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    miércoles, 13 de agosto de 2014 6:23
    Moderador
  • 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

    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

    No se recomienda borrar datos


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    miércoles, 13 de agosto de 2014 6:23
    Moderador
  • 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

    miércoles, 13 de agosto de 2014 11:57