04/07/2010, 13:52
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años Puntos: 2658 | |
Respuesta: Insertar en tablas relacionadas N:M (maxima performance) Son decisiones de diseño de sistemas, te repito, basadas en los requerimientos del usuario, a los que se agregan los requerimientos surgidos de la concurrencia de procesos.
No es que sean prácticos, buenos, malos o ideales por sí mismos.
La declaración de una transacción provoca bloqueos en las tablas administradas en la base, lo que si no se sincroniza bien puede provocar lecturas fantasma, o irreales entre diferentes usuarios concurrentes, lo cual también es un problema grave a considerar.
Si vas a usar diseñar un sistema monousuario, las transacciones se usan para mantener consistencia entre inserciones diferentes consideradas como una sola unidad. Pero si vas a usarlo en un sistema multiusuario, debes considerar otros factores que generarán problemas... y entonces vuelve todo al mismo punto: depende del diseño del sistema que estás haciendo. No de las inserciones en sí mismas...
Como idea, usar transacciones es bueno para tu caso por la consistencia que lograrás, y porque existe una serie de inserciones que están muy relacionadas una con otra. Pero eso no significa que sea ideal o no usar transacciones en todas las inserciones del sistema.
Debes analizar el caso específico, por las implicancias.
En un sistema mayor, bloquear una tabla que usas es mejor que bloquear todas... que puede que no uses.
No hay una respuesta única para tu pregunta.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |