PHP - Eliminar un registro o marcarlo como eliminado?

 
Vista:
Imágen de perfil de Nicolás Ignacio
Val: 14
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Eliminar un registro o marcarlo como eliminado?

Publicado por Nicolás Ignacio (21 intervenciones) el 31/01/2017 00:18:23
Hola estimados!

Perdón si mi consulta es desubicada para el foro, pero ya que trabajo con php pensé en colocarla aquí.

Veo muchos sistemas y por lo general los erp, que no eliminan los registros de ninguna de sus tablas. Solo dejan que se les cambie el estado por ejemplo de activo a suspendido o a dado de baja, y los que están dados de baja no los muestran en los resultados pero persisten en la base de datos a modo de seguridad o auditoría mencionan a veces.

Mi duda es, de acuerdo a vuestra experiencia, porque razón se utiliza dicha metodología? En los abms no dan la opción de eliminar, esto está bien? Sigue algún criterio justificable? No hace que simplemente aumente el espacio de almacenamiento de la db?

Son dudas que quisiera escuchar opiniones al respecto para mis futuros desarrollos.

Bueno espero no haber molestado y que alguno pueda opinar.

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Eliminar un registro o marcarlo como eliminado?

Publicado por xve (6935 intervenciones) el 31/01/2017 08:50:55
En nuestra empesa, los desarrollos que hacemos, tampoco eliminamos nunca los registros, los marcamos siempre como eliminados con la fecha de eliminación.

Eliminarlo de la base de datos, no ganas en rapidez en su uso si tienes los indices bien definidos, y siempre tienes constancia de cualquier movimiento en los registros. Si lo borras, ya no puedes recuperar-lo, ni sabes cuando se borro, ni tienes estadísticas de eliminaciones o bajas, etc...

Es muy recomendable marcar el registro en vez de eleminarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Nicolás Ignacio
Val: 14
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Eliminar un registro o marcarlo como eliminado?

Publicado por Nicolás Ignacio (21 intervenciones) el 31/01/2017 18:21:27
Muchas gracias xve! Entiendo perfecto tu respuesta y eso es lo que busco, experiencia en esto.

Ahora te consulto, por ejemplo, le dejan la posibilidad de eliminar, pero realmente no se elimina, se quita de las vistas o de los listados esos registros que el usuario elimina?

O sencillamente no crean el botón o el proceso de eliminar y solo le dejan un campo select donde elijan el estado del registro? Esto que te pregunto ya es más de qué manera lo implementan en los formularios...como para darme una idea.

Por otro lado, por ejemplo si una tabla tiene un campo único como ser CUIT en Argentina, y si primero eliminan o dan de baja el registro, y luego meses más tarde otro empleado quiere darlo de alta, el motor de base de datos generará un error por intentar crear un campo único duplicado, esto cómo lo resuelven?

Y la última consulta es, existe algún dato que dejen eliminar? por ejemplo, tipos de clientes, en la tabla con el mismo nombre, luego se transforma en una clave foránea para el formulario de los clientes. Se puede dejar eliminar algún tipo de cliente? se puede esto preveer cuando se selecciona si se produce en cascada cuando se elimina o actualiza un registro??

Bueno, muchas gracias nuevamente! Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 191
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Eliminar un registro o marcarlo como eliminado?

Publicado por Brayan (76 intervenciones) el 31/01/2017 15:25:33
En una base de datos para desarrollo bien puedes hacerlo, pero para una base de datos que esta corriendo online, o para fines de datos reales no se deben eliminar ningún datos, solo deshabilitar lo, motivado que si hay la falta de una dato o archivo puede perjudicar relaciones de tablas y muestra de información te voy a poner un ejemplo:

Estamos en una clínica en la cual un medico Alejandro atendió a un paciente Vicente:

Para el sistema la primera atención fue de Alejandro relacionando a Vicente como uno de sus pacientes, si por alguna razón un administrado borra al medico Alejandro la Atencion realizada a Vicente se perdería ya que no existe ningún Alejandro como medico en la base datos y arrojaría errores o datos null, en cambio al ser solamente deshabilitado (eliminado para los usuarios) se mantienen todos los datos sin ser perjudicadas las relaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Nicolás Ignacio
Val: 14
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Eliminar un registro o marcarlo como eliminado?

Publicado por Nicolás Ignacio (21 intervenciones) el 31/01/2017 18:25:30
Muchas gracias por tu respuesta Brayan!

Entiendo lo que mencionas y coincido! Ahora mi consulta sobre lo que dices es la siguiente, qué sucede si en tu caso al médico Alejandro lo deshabilitan o lo dan de baja, deja de aparecer en los listados? Si se buscan los últimos médicos que atendieron a Vicente, aparece Alejandro aún habiendo sido dado de baja?

Te doy otro ejemplo:

Tengo un un Cliente en la tabla "CLIENTE", y este mismo tiene un Tipo de Cliente "Internacional", donde "Internacional" es una clave foránea (mejor dicho su id pero para no complicar los detalles dejo el nombre) a la tabla "TIPO_CLIENTE". Si yo doy de baja o deshabilito "Internacional", en el Cliente en cuestión seguiría estando este tipo de cliente pero no es lo deseado, cómo se resuelve esto?

Muchas gracias por compartir tu experiencia. Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 191
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Eliminar un registro o marcarlo como eliminado?

Publicado por Brayan (76 intervenciones) el 31/01/2017 19:54:27
En cuanto al ejemplo de Alejandro si, sigue apareciendo el como el primero que lo atendio aunque ya no este en el listado de medicos que laboran.

Bueno yo particularmente tuve un caso similar pero en un proyecto de carros:

Por ejemplo teniamos un enlace del Carro con las marcas y los modelos, al deshabilitar una marca teniamos que dejar de mostrarle esa marca y su respectivo modelo y asignarle uno que si estuviese en nuestro listado de habilitado, lo que hicimos fue que al eliminar(deshabilitar) una marca todo lo que tuviese relacion con ella obtuviera un valor 0 o null, y luego apareciese en una lista de carros sin marca a la cual debe asignarsele una nueva marca y modelo...


Imagino que eso es lo que deseas: que a un cliente de tipo internacional, al eliminarle tipo cliente internacional, no aparezca como tal sino que se resetee y luego asignarle un nuevo tipo de cliente.


Nota: Los valores siempre puedes reemplazarlos, mas no eliminarlos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Nicolás Ignacio
Val: 14
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Eliminar un registro o marcarlo como eliminado?

Publicado por Nicolás Ignacio (21 intervenciones) el 31/01/2017 20:23:00
Entiendo! Bueno es algo así lo que busco, deberé analizar cómo hacer lo lógica en ese caso.

Muchas gracias por tomarte el tiempo en contestar! Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 191
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Eliminar un registro o marcarlo como eliminado?

Publicado por Brayan (76 intervenciones) el 31/01/2017 20:24:43
Si te truncas en algun momento no dudes en consultar yo lo he hecho muy repetidas veces con las funciones date, me estan matando jajajaja. Exito en tu codigo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Nicolás Ignacio
Val: 14
Ha aumentado su posición en 15 puestos en PHP (en relación al último mes)
Gráfica de PHP

Eliminar un registro o marcarlo como eliminado?

Publicado por Nicolás Ignacio (21 intervenciones) el 31/01/2017 20:49:52
Jajajajja, perfecto! Es lo que nos toca, amamos lo que hacemos y tiene estos vericuetos (laberintos).

Saludos y éxito en lo tuyo también!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar