2009-07-21 17 views
9

Wufoo es una: formulario HTML constructorEsquema de base de datos de Wufoo: ¿cómo lo diseñaría?

que le ayuda a crear formularios de contacto, encuestas en línea, y las invitaciones para que pueda recoger los datos, registros y pagos en línea que necesita sin tener que escribir una sola línea de código.

¿Cómo se acercaría al diseño de la base de datos si se está construyendo un sitio similar?

diseños de nivel superior (tablas y relaciones) o diseños de niveles inferiores (tablas, relaciones, campos, vistas, reglas, consultas MySQL, etc ...) son bienvenidos :-)

soluciones basadas en MySQL preferidas ;-)

+0

Demasiado localizado y huele a "Plez send de dzinez" para mí. Votando para cerrar (lo siento) –

+2

Lo siento, así se siente Binary Worrier .... Wufoo es solo un ejemplo que se puede utilizar para centrar la discusión en: desarrollar un esquema de base de datos que permita campos dinámicos. –

+0

No se preocupe, solo llámalo como yo lo veo. El propósito de SO no es ayudar a las personas a crear algo desde cero, ni a "debatir" soluciones (a partir de las preguntas frecuentes "Evite hacer preguntas que sean subjetivas, argumentativas o que requieran una discusión extensa. Esto no es un foro de discusión, esto es un lugar para preguntas que pueden ser respondidas! "). Además, mira esta respuesta de por qué he votado para cerrar esta pregunta http://stackoverflow.com/questions/182833/poll-which-types-of-programming-related-questions-are-appropriate/182834#182834 this isn ' es un "problema específico" y no tiene "solo una respuesta correcta" –

Respuesta

9

Este tipo de diseño de base de datos requiere tablas EAV. Por ejemplo, la sección del formulario probablemente contiene:

1. User table (user_id, user_name, etc.) 
2. Form table (user_id, form_id, form_name, etc.) 
3. Form_field table (form_id, column_id, column_name, column_type, etc.) 
4. column_type table (column_type_id, column_type_name) 

Lleno en los resultados se guardarán en una tabla diferente:

Filled_form (form_id, column_id, value) 

La idea es crear un modelo de base de datos que es lo suficientemente genérico (pero sin más de) necesario, con el fin de adaptarse a las necesidades de diferentes usuarios. Por ejemplo, los tipos de columna son establecidos por los programadores, y cada tipo tiene un significado diferente cuando se procesa el formulario.

+0

¿Podría usted elaborar más sobre esto? form_field.column_is es qué? es de otra mesa? ¿Qué es la tabla column_type? ¿Cómo se relaciona con form_field table? Estoy haciendo un pequeño proyecto que me permitirá crear formularios. – wenbert

+0

En pocas palabras: Las cuatro tablas en la parte superior mantienen la estructura del formulario, no los resultados completados. Cada fila form_field se relaciona con un campo específico en una forma específica, por lo que se relaciona con form_id, tiene un column_id, display name y type. Un tipo_columna sería uno de número, cadena, fecha, etc. Esto se usa para mostrar un campo diferente (y para la validación). Los resultados se guardan en una tabla diferente, por lo que cada valor en fill_form se relaciona con un formulario y una columna específicos. – OmerGertel

+0

Si el formulario va a ser una clave simple, valor, entonces Filled_form funcionará. Cómo almacenar datos, en el caso de la entrada de selección múltiple. – Mukun

Cuestiones relacionadas