RE: Una pequeña pregunta
Amigo Markweb:
Yo sé que a tí ya no hay quien te cambie la idea, porque la tienes consolidada en base a tu experiencia personal, que pesa más que cuanto podamos decirte los demás. Cada uno nos hemos hecho con nuestros cinceles, y no está bien que nadie quiera imponernos su criterio. Pero tengo que aportar mi experiencia para que los terceros tengan opiniones que puedan confrontar, respetuosa y amigablemente, por supuesto.
Yo llevo la friolera de 32 años programando, en todo tipo de lenguajes previos hasta que caí en VB... La mayoría del tiempo lo hice con Clipper 5.2e. En éste, que tantas satisfacciones me dio, encontré el inconveniente de la lentitud del empaquetado... Llegaba a hacerse insoportable cuando la BD tenía un moderado número de registros... Y decidí, con otro compañero a quien le corresponde la gala de la decisión, no borrar nunca un solo registro; sólo lo marcábamos como no válido y luego lo reintegrábamos en la base cuando necesitábamos hacer un Append (que sólo se hacía cuando no había ya ningún registro marcado...)
Ese mismo inconveniente presentan las BD de Access, en las que los campos autonuméricos incapacitan para que puedan recuperarse registros anulados, por lo que ese tipo de campos los evito sistemáticamente. Y ¿qué es lo que hago? Cuando decido ELIMINAR un registro simplemente MARCO uno de sus campos (creado específicamente con el nombre de BORRADO y de tipo Lógico): Lo pongo como verdadero. Cuando quiero AÑADIR un nuevo registro, antes de hacer el ADDNEW busco si hay un registro con Borrado = True; si lo encuentra, lo cambia a False y aprovecho todo el registro para actualizar en él los valores del nuevo; si no existe, hago el AddNew.
¿Inconvenientes? Todas las búsquedas y consultas deben llevar una condición de WHERE BORRADO = False, excepto cuando busquemos los borrados, antes de hacer el Append, que llevará por contra un Where Borrado = True...
¿Ventajas? Todas... La base de datos no crece a lo loco, se aprovechan todas las basuras..., evitamos todos los problemas secundarios a la función DELETE, que a mí me sobra, y sobre todo NO SE NECESITA EMPAQUETAR.
Y de esta forma podemos seguir afirmando que Access sigue siendo la mejor base de datos DE CATEGORÍA DOMÉSTICA, que sin duda en una gran empresa tiene competencias incomparables, pero que en el gran mercado del día a día, se mantiene en primerísima línea. Ésa es mi opinión, respetando otras más autorizadas, como puede ser la tuya.