Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/04/2013, 11:03
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: infinitas columnas

Cita:
Iniciado por dieguicho Ver Mensaje
justamente por eso vengo aqui a preguntar cual puede ser una solucion adecuada.

la idea es que el usuario pueda customizar los campos de un formulario (al mejor estilo de eso que se programa en javascript que el usuario agrega campos, y desplegables, etc, etc)

el problema es que todo esto tiene que ser almacenado en una base de datos y al ser campos creados dinamicamente con javascript no hay una relacion directa en la base de datos
osea no tengo id, nombre, apellido, email sino que los campos los crea el usuario
no se si he aclarado un poco la cosa. gracias!
Si... lo has aclarado. Lo suficiente como para decirte que tu sistema colapsará antes de que pases 6 meses en producción, porque eso es un error de tipo catastrófico.
Nunca, jamás, nadie en su sano juicio deja que sea un usuario el que define la estructura de una tabla. Eso simplemente no se hace.
Hay algunas razones fundamentales:
1) No puedes poner una tabla con definición dinámica sin tarde o temprano llegar al límite de campos posibles que el DBMS te da. Todo DBMS tiene restricciones, porque no es admisible una cantidad infinita de campos.
2) Te arriesgas a fallos de normalización calamitosos. El usuario puede poner cualquier cosa, incluyendo columnas con dominios solapados, datos repetitivos, y montón de basura de tamaño imposible.
3) Cada modificación se aplicaría a la misma tabla (a menos que además estés pensando en crear una tabla por usuario, lo que sería peor), con lo que dos usuarios podrían crear o destruir estructuras que no les pertenecen. No quiero ni imaginar los resultados catastróficos de semejante cosa.
4) Es totalmente innecesario hacer eso. Para lograr estructuras de formularios dinámicos no tienes por qué crear una base de modificación dinámica. Lo que tienes que hacer es crear una base que soporte la creación dinámica de formularios... cosa que es otra cosa totalmente diferente.
5) Estás intentando inventar la rueda, descubrir el fuego y además inventar el agujero del mate. Eso ya se hizo, y es una de las cosas que contienen las estructuras de las bases de diferentes aplicaciones (vBulletin, WordPress, etc), precisamente para usos semejantes... aunque claro, de todos modos están pensadas para que haya un administrador que defina eso, y no dejarlo al arbitrio de los que no entienden ni medio.

No lo hagas.

No tiene ni sentido ni justificación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)