none
Delete o Cambiar Estado a campo bit RRS feed

  • Pregunta

  • Hola muchahcos me encuentro desarrollando un formulario de mantenimiento o ABM de alumnos, resulta que mi duda siempre ah sido con respecto a si se debe de hacer el Delete o simplemente trabajar con estados. Es decir por ejemplo mi tabla alumno tiene un campo activo si quiero que sea inactivo hago un Update al campo actuivo a 0.

    He leido varios foros y hay varias opiniones a respecto, muchos dicen que no es bueno hacer delete por eso de la integridad referencial, incluso dan un ajemplo que pasa si hago un delete a un cliente, este esta relacionado con ventas. Se podria trabajar en cascada creo. Y por otro lado me dicen que cambiando el estado me ahorro todo ese problema.

     

    Que pasa por ejemplo a tablas importantes como ventas, matriculas, pagos, un movimiento bancario, o cualquier proceso ,etc. Creen que sea uena idea hacer un delete o un Update. Uhmm Esta es basicamente mi duda, Ojala alguien me aclare mas el panorama de mi duda.

    Que son basicamente dos:

    En un ABM de datos como clientes, empleados, alumnos, etc es buena idea hacer el DELETE, ya que esta tabla esta relacionado generalemente con otras entidades. Ejm Cliente con Factura, Empleado con Nominas de Pagos, Alumnos con Matriculas. O me ahorraria ese problema si en lugar del Delete hago un simple Cambio de Estado a un campo bit, llamado actuvo.

     

    En un proceso como facturas, nominas, pagos, matriculas, es buena idea hacer un delete o Update, me imagino que  esos datos son sencibles y  se me ocurre que no seria buena idea dejar que los usuarios editen por ejemplo una venta o un pago o una matricula. Si se equivocan en algo que el proceso se puede anular y volver a generar el proceso desde cero. Pero bueno esa es mi logica quizas este equivocado, pero estas dos son mis dudas. Espero me haya dejado entender y puedan ayudarme a aclarar ma el tema sobre sistemas de informacion.

     

     

    miércoles, 25 de mayo de 2011 20:16

Respuestas

  • hola

    en realidad este tipo de acciones tambien los condiciona un poco el negocio y los requisitos que relevees del mismo

    por lo general tablas comos er cliente, usuario, etc no se borran fisicamente proque son entidads con miles de relaciones con muchas entiadesde borrar en cascada un registro de estas tablas podrian impactar quizas en 15 tabla o muchisimas mas segun que tan grande sea el sistema, ademas es bueno amenter el historico de accioens de un usuario u otra entidad aunque este dadod e baja

     

    por otro lado quizas entidades mas simples como ser una orden de compra asociada a un cliente si esta tiene un ambito pequeño podria eliminarse fisicamente, pero ojo esto lo dira tu noegocio porque puede que la orden de compra lleva un tracking de arpovacion y de esto se diparen mcuhas acciones con lo cual quedara fuentemente relacionada y dr de baja fisicamente no sea una opcion

    en resumen analzia la entidad que quieren implmentar el borrado y valida que tan importante o dificultoso es aplciar un borrado fisico

    por ejemplo una lista de mails, o telefono, contactos, etc asociado a los usuario podria borrarse fisicamente sin problemas, porque estara en una tabla unica de relacion y solo sera esa

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 25 de mayo de 2011 20:27

Todas las respuestas

  • Hola.

    yo te recomiendo que no hagas el delete, ya que en ocasiones es muy importante tener el historiar es muy importante tenerlo siempre guardado.

    Si en algun momento te piden algun informe y ya has eliminado algun cliente de la tabla el informe que arojarias no va a estar completo, se perderan los datos de los clientes que hayas eliminados.

    tambien si no tienes el delete en forma de cascada vas a tener muchos problema con las demas tablas con las que se relacione.

    Espero que te sirva mi comentario.

     

    miércoles, 25 de mayo de 2011 20:24
  • hola

    en realidad este tipo de acciones tambien los condiciona un poco el negocio y los requisitos que relevees del mismo

    por lo general tablas comos er cliente, usuario, etc no se borran fisicamente proque son entidads con miles de relaciones con muchas entiadesde borrar en cascada un registro de estas tablas podrian impactar quizas en 15 tabla o muchisimas mas segun que tan grande sea el sistema, ademas es bueno amenter el historico de accioens de un usuario u otra entidad aunque este dadod e baja

     

    por otro lado quizas entidades mas simples como ser una orden de compra asociada a un cliente si esta tiene un ambito pequeño podria eliminarse fisicamente, pero ojo esto lo dira tu noegocio porque puede que la orden de compra lleva un tracking de arpovacion y de esto se diparen mcuhas acciones con lo cual quedara fuentemente relacionada y dr de baja fisicamente no sea una opcion

    en resumen analzia la entidad que quieren implmentar el borrado y valida que tan importante o dificultoso es aplciar un borrado fisico

    por ejemplo una lista de mails, o telefono, contactos, etc asociado a los usuario podria borrarse fisicamente sin problemas, porque estara en una tabla unica de relacion y solo sera esa

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 25 de mayo de 2011 20:27
  • Hola muchas gracias por sus comentarios quedo entendido a la perfeccion con las tablas maestros.

     

    Que sucede por ejemplo en procesos, les cuento un anecdota que es el motivo por el cual hago esta pregunta:

    La vez pasada me fui a hacer una encomienda y el usuario en el aplicativo se confundio de razon social  o Nombre de Empresa o RUC, lo ue hizo fue anular la factura, y volver a generar otra.

    A lo que quiero ir es precisamente a tablas importantes, como pueden ser pagos, facturas, matriculas, nominas.

    Seria buena idea realizar o darle una opcion de editar al usuario?. Por ejemplo que pasa si en una matricula de alumno, el usuario elige la seccion y el turno equivocado o un pago se equivoca de cliente o escribe un monto de descuento que no es. Seria buena opcion darle al usuario la posibilidad de poder editar algunos campos que se equivoco (ojo me refiero a un proceso importante en si en donde implica transacciones.) o en todo caso trabajar a nivel de un borrado logico o anulado con un campo flag.

    miércoles, 25 de mayo de 2011 20:39
  • Hola

    con respecto a lo de modificar facturas eso depende mucho de las reglas de negocios que se tengan en la empresa, muchas empresas no permiten que se hagan modificaciones a las facturas, si pasa algo lo que hacen es anularlas o crear notas cretido. pero si necesitas anularlas seria bueno que no todos los usuarios puedan hacer esto, asignarles permisos a los usuaior.

     

    miércoles, 25 de mayo de 2011 20:45