Cita:
Iniciado por gnzsoloyo En realidad no. Las complicaciones de usar tablas por usuarios impactarían directamente en la aplicación, además de hacer imposible usar integridad referencial en ciertas tablas críticas, como las de mensajería, porque no puedes definir una FK que apunte a dos o más tablas diferentes.
Si implementases una tabla por usuario, el resto de la integridad referencial y la consistencia la deberás administrar por medio de programación, con lo que deberías aumentar la cantidad de consultas, verificaciones y posiblemente actualizaciones.
Pero lo central es que esto:
Hace años que se solucionó: Eso se realiza con lo que se deominan transacciones o TRANSACTION, que permiten controlar estas cosas.
Gracias!
El primer punto ya lo tengo bastante claro.
Con respecto al segundo, he estado leyendo sobre el tema, principalmente del manual de usuario de MySQL y he llegado a este párrafo (Estaba leyendo sobre las transacciones):
Cita: InnoDB tables use row-level locking so that multiple sessions and applications can read from and write to the same table simultaneously, without making each other wait or producing inconsistent results. For this storage engine, avoid using the LOCK TABLES statement, because it does not offer any extra protection, but instead reduces concurrency. The automatic row-level locking makes these tables suitable for your busiest databases with your most important data, while also simplifying application logic since you do not need to lock and unlock tables. Consequently, the InnoDB storage engine in the default in MySQL 5.5 and higher.
Viene a decir que InnoDB utiliza el bloqueo de filas por lo que varias sesiones y aplicaciones pueden leer y escribir en la misma tabla al mismo tiempo, sin hacer esperar a cada uno o producir resultados inconsistentes. Para este motor de almacenamiento, se debe evitar el uso de la declaración de bloquear tablas, ya que no ofrece ninguna protección adicional, sino que reduce la concurrencia...
Entonces, haciendo uso de tablas InnoDB, no tendría problemas, ya que sólo bloquearía la fila que está siendo utilizada.