Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/07/2016, 01:21
Amiancht
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 11 años
Puntos: 25
Respuesta: Sugerencias para una base de datos dinamica

Cita:
Iniciado por 50l3r Ver Mensaje
¿Que os parece? ¿Debería de seguir el ejemplo de Wordpress y no complicarme, introduciendo todos los datos en una misma tabla o crear de manera dinámica una tabla por cada aplicación con sus campos?
Hola,
en esto estamos ya casi entrando en arquitectura de software.

A ver, llegas a comparar tu aplicación que genera otras aplicaciones de forma dinámica con un CMS como Wordpress que lo único que hace son post para un blog, es un grave error.

Parate a pensar las siguientes cosas:
  • ¿El creador de aplicaciones lo usara más de un usuario administrador?
  • ¿Las aplicaciones generadas serán totalmente independientes?
  • ¿Cada adminitrador tendrá sus propias aplicaciones?¿O todos los administradores tendran compartiran todas las aplicaciones generadas?
  • ¿Cada aplicación generada podra registrar otros usuarios para el uso de la misma?

Y a partir de responderte tu mismo a estas preguntas, pensar despues en el mantenimiento separado o no de cada una aplicación.

La cuestión está en cuanta independencia necesiten una aplicación de otra. La complejidad de las mismas, y el funcionamiento e interactividad de los administradores y usuarios que la vayan a usar.

Si mantienes todas las apps en una sola tabla, cuando tengas que hacer mantenimiento y tengas que cerrar el servicio de una para depurar la base de datos o cualquier cosa, lo más seguro que tengas que parar el servicio en todas las apps.

Mientras que si las tienes en tablas separadas, no te pasaría eso. Además que un error en una consulta autogenerada en php sobre una tabla en concreto no afectaría más que a la aplicación de esa tabla. Y al reves, si fuera todas en una misma tabla afectaria a todas.

Hasta incluso dependiendo de la necesidad y complejidad es posible que sea mejor incluso crear una base de datos para cada aplicación generada. Aunque seguramente no sea tu caso ya que mencionas una sola tabla por aplicación.

La unica pega a tenerlo todo por separado, que si tienes que hacer una actualización de la estructura de las tablas y añadir un nuevo campo común a todas las apps, es que cuanto más independientes sean más complejo será actualizarlas todas.

No sabemos nada de lo que tienes entre manos, eres tú quien debe decidir cual es la mejor arquitectura en la base de datos para las necesidades que debas suplir tanto funcionales como de mantenimiento.