Foros del Web » Programando para Internet » PHP »

CodeIgniter Sugerencias para una base de datos dinamica

Estas en el tema de Sugerencias para una base de datos dinamica en el foro de PHP en Foros del Web. Buenas tardes, Quisiera saber vuestra opinión sobre la manera de desarrollar el modelo de datos de una herramienta que permite crear aplicaciones dinámicas, es decir, ...
  #1 (permalink)  
Antiguo 26/07/2016, 10:24
 
Fecha de Ingreso: agosto-2009
Mensajes: 421
Antigüedad: 10 años, 1 mes
Puntos: 6
Sugerencias para una base de datos dinamica

Buenas tardes,

Quisiera saber vuestra opinión sobre la manera de desarrollar el modelo de datos de una herramienta que permite crear aplicaciones dinámicas, es decir, con unos campos determinados a elección del propio usuario.

Actualmente mi herramienta se nutre de una base de datos mysql, que se genera de manera dinámica.
  • [li]Cuando se crea una aplicación nueva, se crea su correspondiente tabla con unos campos "oficiales": ID, Fecha UltModificacion, IP UltModificacion, UserIdUltModificacion..etc.[/li]
    [li]Cuando se añade un campo o se modifica, se genera sus correspondientes "ALTER TABLE's"[/li]
    [li]Cuando se elimina la aplicacion se ejecuta un "DROP TABLE"[/li]

Esta parte esta pendiente de desarrollar, dado que ahora creo las tablas de manera manual.

Antes de meterme en ello, dado que conlleva su grado de complejidad, me pregunto si estare desperdiciando el tiempo, dado que un CMS como Wordpress almacena todos los "custom post types" y sus campos en la misma tabla "wp_posts".

Segun mi opinion estos son los pro's y contra's

[size=10pt]Mysql dinamico:[/size]

PRO's: Más rapidez en consultas, filtrados, ordenaciones, busquedas...
CONTRA'S: Hay que desarrollar un constructor de tablas muy robusto y capado dado que puede dar lugar a numerosos fallos.

[size=10pt]Metodo Wordpress:[/size]

PRO's: Sencillo de desarrollar, los datos se introducen en formato json o serializados y no hace falta desarrollar un constructor.
CONTRA'S: Quizas un menor control en los datos introducidos a la hora de filtrar y ordenar.

¿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?
  #2 (permalink)  
Antiguo 27/07/2016, 20:16
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 8 años, 7 meses
Puntos: 288
Respuesta: Sugerencias para una base de datos dinamica

el wordpress sirve para determinadas cosas pero no logra cubrir todos los modelos de negocios
yo en mi trabajo uso thebuggennie, que es tipo un joomla pero este me permite crear tipos de campos, ejmplo: fecha, proveedores, cualquier tipo que se me ocurra y despues genero lo campos que quiero por que asi puedo extender mi framework a como yo quiera sin perder la esencia del csm

hay mucho ya hecho para que quieres hacer uno nuevo?
  #3 (permalink)  
Antiguo 29/07/2016, 01:21
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 6 años, 3 meses
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.

Etiquetas: codeigniter, dinamica, fecha, mysql, sql, sugerencias, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:03.