Mysql
 sql >> Database >  >> RDS >> Mysql

Schema del database di Wufoo:come lo progettereste?

Questo tipo di progettazione di database richiede EAV tavoli. Ad esempio, la sezione del modulo contiene probabilmente:

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)

I risultati compilati verranno salvati in una tabella diversa:

Filled_form (form_id, column_id, value)

L'idea è quella di creare un modello di database che sia sufficientemente generico (ma non più del necessario) per soddisfare le esigenze di utenti diversi. Ad esempio, i tipi di colonna sono impostati dai programmatori e ogni tipo ha un significato diverso durante il rendering del modulo.