Cita:
Iniciado por Huasi Recuperar a traves del log de transacciones acarrea el problema de que me trae de vuelta toda la base de datos cuando yo solo necesito recuperar una porción. Por otro lado, lo malo que tiene el campo Active/Inactive (yo le llamo bandera :P) es que no borra nada y de esa manera se me dispara el crecimiento de la base, pero bueno supongo que con una política de mantenimiento para el borrado de los inactive luego de un determinado tiempo eso no seria problema. Gracias por la ayuda, saludos
Te comento mi experiencia. Yo ofrezco a los clientes campañas de marketing donde pueden subir sus agendas, gestionarlas, crear campañas, etc. Entre las operaciones con las agendas y las campañas también está la de "borrar".
Lo que yo hago no es borrar los datos porque luego es imposible saber que ha pasado (sí, se puede tirar del log de transacciones pero es muy pesado). En lugar de hacer un "Delete" prefiero usar un campo "bandera" para indicar si el registro esta borrado/inactivo. En mi caso, lo que hago es poner un campo que puede ser NULL y que llamo "fechaBaja". El hacerlo que sea un campo de tipo DateTime tiene el proposito adicional de saber en que fecha se realizó la baja.
Con esto tenemos un sistema en el que las bajas (o borrados) pueden ser reversibles por el administrador. Para solventar el tamaño del crecimiento lo que usamos es una segunda tabla de historicos. Con un job que se ejecuta cada día una vez, se pasan los registros cuya fecha de baja sea superior a 1 mes (por ejemplo). En mi caso tengo la obligación de tener que guardar todos los registros históricos pero en tu caso al cabo de "x meses" o "x dias" puedes hacerles el delete definitivo si no los necesitas.