Eu tenho UMA página html longa, vários conjuntos de perguntas divididos em pequenas seções (aproximadamente 15 subseções em uma página), o total de perguntas são cerca de 100 perguntas: varia de entrada, múltipla escolha, caixas de seleção, botões de opção, área de texto, e upload de arquivo. Uma pergunta pode conter muitas respostas obtidas de grupos de caixas de seleção, grupos de listas de seleção, grupos de seleções múltiplas ou todas combinadas em uma única resposta. Eu pensei em usar esse design de banco de dados abaixo, mas descobri recentemente que não é a boa abordagem, afinal.
- Um cliente pode ter apenas um conjunto de perguntas: um cliente por 100 perguntas.
- Para a abordagem antiga, eu não mantenho perguntas no banco de dados, mas atribuo como constante na codificação PHP. O problema é que tenho que comparar a pergunta no PHP para sincronizá-la com a resposta no banco de dados. Se uma pergunta tivesse sido alterada / excluída / movida do PHP, eu definitivamente me perderia para combiná-la com a resposta no banco de dados do questionário. Melhor solução?
- Posso manter várias respostas obtidas de vários elementos no formulário em um campo como uma resposta? Como recuperar esse campo e exibi-lo novamente para visualização do cliente no formulário?
- Qual opção abaixo devo escolher?
OPÇÃO 1: Abordagem antiga (1 tabela)
TABELA: Questionário
- ID (PK)
- Identificação do Cliente
- Status
- A1
- A2
- A3
- .
- .
- .
- A100
OPÇÃO 2: Nova abordagem (2 tabelas)
TABELA: Pergunta
- QID (PK)
- Pergunta (varchar)
TABELA: Resposta
- AJUDA (PK)
- Identificação do Cliente
- QID (int)
- Resposta (varchar)
Ou opção 3?