Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Esquema de banco de dados do Wufoo - Como você o projetaria?


Esse tipo de design de banco de dados exige EAV mesas. Por exemplo, a seção de formulário provavelmente contém:
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)

Os resultados preenchidos serão salvos em uma tabela diferente:
Filled_form (form_id, column_id, value)

A ideia é criar um modelo de banco de dados que seja genérico o suficiente (mas não mais do que) necessário, para acomodar as necessidades de diferentes usuários. Por exemplo, os tipos de coluna são definidos pelos programadores e cada tipo tem um significado diferente ao renderizar o formulário.