Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2008, 09:13
Avatar de cmarti
cmarti
 
Fecha de Ingreso: noviembre-2003
Ubicación: Buenos Aires - Argentina
Mensajes: 442
Antigüedad: 20 años, 6 meses
Puntos: 1
MyISAM - Integridad Refencial

De todo lo que he leído sobre integridad referencial es como que el premio se lo llevan rotundamente las tablas InnoDB sin embargo, me planteo y me vuelvo a replantear el por qué de esta exclusividad. No es negarme a la eficiencia sino entender si puede o no lograrse lo mismo con las tablas MyISAM.
Mi respuesta es sí, siempre y cuando el proyecto no precise de transacciones como por ejemplo un carrito de compras.

Por el resto, no veo impedimiento alguno a que pueda gestionarse la Integridad Referencial en tablas MyISAM.
Esto último claro, obligaría al Desarrollador a afinar muchísimo la puntería y no dejar nada libre al azar pero pregunto...

1)Cuando nosotros diseñamos una base, es mucho el trabajo de entender una E-R (Entidad-Relación).

2) Es complicado entender que si tengo una tabla Clientes, otra Productos y una tercera Ventas, en esta última deberían entre otros campos figurar los "vinculantes" (virtuales en MyISAM) que hagan referencia a las dos antecesoras.

3) Si un empleado deseara eliminar (p ej) un registro de la tabla "Clientes", es complicado preguntar si ese registro se encuentra en la tabla Ventas? ó en realidad lo tedioso del tema obedece a la posible gran cantidad de tablas donde la pseudo FK "id_cliente2 se pueda encontrar?

Me gustaría mucho contar con vuestra opinión porque a modo de síntesis creo que las tablas InnoDB abreviarían la posibilidad de error ante una falta de control en los scripts sobre una clave foránea (pseudo en MyISAM) olvidada por ahí.

Según dicen los libros si el proyecto web habla solo de consultas y actualizaciones, entonces deberían utilizarse tablas MyISAM pero si es un ABM completo, lo más indicado sobretodo por el bloqueo a nivel fila , es usar tablas InnoDB.

La última pregunta es, 4) hoy por no existe (al menos para mí) una DB que no sea relacional vale decir que la dependencia entre tablas, está a orden del día... entonces, para qué tipos de sites sería aceptable la programación en tablas MyISAM?

Gs.
__________________
When all else is lost the future still remains.