Sugerencias para base de datos dinamica

Iniciado por 50l3r, 26 Julio 2016, 18:28 PM

0 Miembros y 1 Visitante están viendo este tema.

50l3r

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.


  • Cuando se crea una aplicación nueva, se crea su correspondiente tabla con unos campos "oficiales": ID, Fecha UltModificacion, IP UltModificacion, UserIdUltModificacion..etc.
  • Cuando se añade un campo o se modifica, se genera sus correspondientes "ALTER TABLE's"
  • Cuando se elimina la aplicacion se ejecuta un "DROP TABLE"

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

Mysql dinamico:

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.

Metodo Wordpress:

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?

Adrialmend

No se si te serviré de ayuda pero por mi parte lo haría manualmente. ¿Porqué? Porque sabes todos y cada uno los pasos de como lo has programado. Como digo, no te serviré de mucha ayuda, pero siempre he preferido hacerlo yo, que usar otras cosas  ;D


Un saludo.

50l3r

Cita de: Adrialmend en 27 Julio 2016, 08:14 AM
No se si te serviré de ayuda pero por mi parte lo haría manualmente. ¿Porqué? Porque sabes todos y cada uno los pasos de como lo has programado. Como digo, no te serviré de mucha ayuda, pero siempre he preferido hacerlo yo, que usar otras cosas  ;D


Un saludo.

Creo que no entendiste el contexto del hilo. En cualquier de los dos casos voya a desarrollarlo yo, tanto el constructor de base de datos como la logica de los datos serializados que usa WP.

No se trata de usar algo ya hecho, sino de utilizar una tecnica u otra.

Adrialmend

Pues yo usaría MySQL dinámico, ¿porqué? por qué siempre lo he echo así. Lo siento, no puede servirte de más ayuda.

Un saludo.

#!drvy

Mi sentido común me dice que utilice el 'metodo Wordpress' puesto que me aseguro que tengo todo controlado y no tengo que implementar seguridad especial para usar ordenes MySQL como ALTER o DROP.

Pero el primer método se ve bastante limpio y probablemente mas manejable.. aunque incluye el problema de que un usuario te podría tirar todas las tablas en caso de que consiga acceso :/

Saludos

50l3r

Cita de: #!drvy en 27 Julio 2016, 13:36 PM
Mi sentido común me dice que utilice el 'metodo Wordpress' puesto que me aseguro que tengo todo controlado y no tengo que implementar seguridad especial para usar ordenes MySQL como ALTER o DROP.

Pero el primer método se ve bastante limpio y probablemente mas manejable.. aunque incluye el problema de que un usuario te podría tirar todas las tablas en caso de que consiga acceso :/

Saludos

La traba que veo al metodo wordpress es como controlar los datos filtrando, buscando y ordenando. Wordpress lo hace pero nose si tengo del todo claro su estructura. Indagare en su modelo de datos.

El metodo del constructor es el que hasta ahora he seguido. Un problema adicional que veo es que con futuras actualizaciones de mysql tendre que modificar mi constructor y que, como tu bien dices, debo de cerrarlo muy bien porque las sentencias alters y create son peligrosas.

ivancea96

Si tienes claro el funcionamiento de tu método, úsalo, qué puede salir mal. Los problemas de seguridad, nombre de tablas, etc, mientras los controles con precaución, lo debería haber problema.
Otra cosa sería que te surja algún problema en el futuro que ahora no hayas planteado. Pero si en principio está claro, a ello :D!

Maurice_Lupin

Hola, sobre el tema, estoy desarrollando un plugin para WP y necesitaba construir tablas y hacer consultas multitabla, todo esto validarlo con las credenciales de usuario de wp, encontré esta info ;D , ahora todo esta en buen camino.

https://deliciousbrains.com/managing-custom-tables-wordpress/

Saludos.
Un error se comete al equivocarse.