Tabela com número dinâmico de colunas

3 respostas
M

Pessoal, to querendo montar um "Pesquisa Maker", onde você cria a pergunta e o tipo de resposta a partir do que já tem no banco, podendo criar novas perguntas e tipos de resposta.

Bem, o problema é que, entre as respostas, existem as que são múltipla escolha ou escolha única: você tem X opções e marca 1/várias. Minha dúvida é: como faço para criar uma tabela que tenha um número dinâmico de colunas (se é que isso é possível)? Ou terei que criar uma tabela diferente para cada um desses tipos de respostas? No segundo caso, como eu faria pra recuperar os dados de todas essas tabelas diferentes?

Pra ajudar a visualizar, imagine que eu tenha que armazenar o seguinte num banco:
Opções de resposta1
 () Bom
 () Regular
 () Ruim

Opções de resposta2
()Sim
()Não

Opções de resposta3
()Futebol
()Volei
()Basquete
()Tênis
()Natação

Se alguém puder me responder, me indicar um lugar com a resposta ou que possa ajudar, eu agradeço muito!

PS: Se alguém tiver um artigo ensinando isso com Eclipselink ajuda ainda mais!

3 Respostas

ViniGodoy

Cria a tabela para a pergunta. E a tabela para as opções de resposta. Crie um relacionamento de 1-N entre elas (1 pergunta pode ter N opções de respostas).
Depois crie a tabela que une a pergunta as opções de respostas escolhidas.

M

ViniGodoy:
Cria a tabela para a pergunta. E a tabela para as opções de resposta. Crie um relacionamento de 1-N entre elas (1 pergunta pode ter N opções de respostas).
Depois crie a tabela que une a pergunta as opções de respostas escolhidas.

Pro que eu quero, relação 1-N não funcionaria, já que várias perguntas diferentes poderiam usar as mesmas opções, logo eu precisaria de uma tabela assossiativa. Mas eu entendi sua idéia. Por outro lado, 1-N pode ser usado quando uma pergunta tiver uma resposta escrita.

Talvez eu não tenha explicado direito também:

Eu vou ter várias perguntas, que poderão ou não ser usadas mais de uma vez (tabela de perguntas).

Cada pergunta, obviamente, vai ter sua resposta.

A resposta pode ser escrita pela pessoa (texto) ou uma ou várias opções marcadas (combo/radiobox)

1 pesquisa tem N perguntas;

1 pergunta pode estar em N pesquisas;

1 pergunta tem N respostas;

1 resposta escrita pertence à 1 pergunta;

1 resposta de opções tem N opções;

1 opção pode estar em N respostas; (A mesma opção Sim pode aparecer para uma resposta Sim/Não e Sim/Talvez/Não, por exemplo)

Eu estou tentando montar as tabelas em cima disso, mas eu realmente não estou entendendo bem o que fazer com as de opções, pelo menos no que diz contar quantas vezes foram marcadas durante uma pesquisa.

Lembrando, eu estou tentando criar um sistema que monte a pesquisa usando perguntas e respostas cadastradas no banco

atilaraphael

Olá mistermano, o ViniGodoy esta certo, você deve criar a tabela para as perguntas e outra para as respostas.

Fiz um desenho no Excel que ilustra como poderia ficar seu bd.

Dá uma conferida, pode te ajudar a entender melhor seu problema.


Criado 8 de setembro de 2011
Ultima resposta 9 de set. de 2011
Respostas 3
Participantes 3