Ajuda para modelar banco - Como fazer "questão de assinalar"?  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
Zeed01
Virtual Machine Man

Membro desde: 27/10/2006 16:44:29
Mensagens: 667
Offline

Boa noite Galera !

Lavieri

Essa me interessou...
Quer dizer que com insertable false eu não preciso persistir as alternativas no banco antes de setar a alternativa correta na pergunta ?

Estou perguntando porque se na pergunta temos uma fk "id_alternativa_correta" que aponta para uma das alternativas que foram gravadas no passo anterior, isso não iria gerar um erro no banco ?

Explicando melhor, eu vou setar uma alternativa correta que ainda nao existe no banco la na TB_ALTERNATIVAS.

[]s
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline




pronto... assim vc pode fazer




fim!

This message was edited 1 time. Last update was at 10/03/2010 00:03:54


Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
buthy
HelloWorld

Membro desde: 04/03/2010 07:36:49
Mensagens: 10
Offline

seria só uma opcao correta, sem multipla escolha...

desculpa, mas eu nao to entendendo mto do que vcs tao falando e tal..

nao teria que ter um campo pras opcoes incorretas tbm?
que vai ser um cadastro de exercicios

e na area do aluno, o aluno poderá responder as questoes...
Zeed01
Virtual Machine Man

Membro desde: 27/10/2006 16:44:29
Mensagens: 667
Offline

Boa madrugada Galera !

Na opção que eu dei você teria um campo Boolean na TB_ALTERNATIVA que seria true para a correta e false para as erradas.

[]s
sulito
Virtual Machine Man

Membro desde: 23/11/2009 07:15:59
Mensagens: 607
Offline

Olha O modelo relacional deve ficar assim ou parecido com esse apenas mudando os nomes dos campos para nomes identicos ou equivalentes.


tabela pergunta
________________
id_pergunta
pergunta
________________

tabela respostaPergunta
______________
id_respostaPergunta
id_pergunta
resposta
alinea(a,b,c,d,e,)
eVerdadeira ( boolean -- se a resposta é verdadeira ou falsa)
______________________________________


Na minha opinião o modelo relacional certo é esse.

agora vou dar uma breve explicação
temos a tabela pergunta onde vamos postar as diferentes perguntas.

Agora na tabela respostaPergunta, temos as respostas das perguntas, temos o id_pergunta ( codigo da pergunta), temos a alinea ( se a resposta é a alinea a,b,c,d), temos eVerdadeira( para saber se a resposta é verdadeira ou falsa).

o campo eVerdadeira ( do tipo boolean) serve para identificar se esta resposta é verdadeira ou falsa, tendo em conta que para uma pergunta podera ter mais que uma alinea verdadeira.

desta forma podemos ter perguntas com mais de uma resposta verdadeira do estilo da certificação scjp


Manos Critiquem

This message was edited 1 time. Last update was at 10/03/2010 03:59:22


LPI-101
Zeed01
Virtual Machine Man

Membro desde: 27/10/2006 16:44:29
Mensagens: 667
Offline

Bom dia Galera,

sulito

Impressão minha ou chegamos na mesma solução ?

[]s
Lavieri
GUJ Master
[Avatar]

Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline

sulito wrote:..., temos a alinea ( se a resposta é a alinea a,b,c,d), ...


esse trecho que não esta OK ....

não há sentido de colocar qual é a letra da alternativa.... ou vc coloca um ordenador, pra saber a ordem que elas devem vim, ou então não coloca nada...


se colocar.... a,b,c,d ... vai ficar amarrado....


e é bom poder colocar as perguntas em qualquer ordem

Sun Certified Java Programmer (SCJP 6)

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999

Meu blog -> http://blog.tomazlavieri.com.br/
[ICQ]
sulito
Virtual Machine Man

Membro desde: 23/11/2009 07:15:59
Mensagens: 607
Offline

Zeed01 wrote:Bom dia Galera,

sulito

Impressão minha ou chegamos na mesma solução ?

[]s

Ya mano , na verdade eu não li todos os post do topico, desculpa ai, eu normalmente leio as primeiras postagens, e depois pulo e leio a ultima postagem para ver se ja ha um concenso.

Mas vou dar uma olhada em todo o post,

LPI-101
buthy
HelloWorld

Membro desde: 04/03/2010 07:36:49
Mensagens: 10
Offline

dae galera

valeu pela ajuda de tds!

mas ainda nao consegui chegar a uma conclusao definitiva...

É o seguinte
Preciso fazer um site em php (trabalho de facul)
E estou com problemas para modelar o banco de dados, utilizando o DBDesigner 4

a ideia é a seguinte, terão 3 tipos (niveis) de usuários
(básico, avançado, admin)

os admins poderao cadastrar usuarios e cadastrar exercicios para os alunos
e os alunos irao responder os exercicios

aqui tá o modelo, por enqt:



os alunos que estivessem cadastrados no nivel básico teriam tais exercicios
e os que estivessem no nivel avançado, teriam outros exercicios

essa é uma das duvidas, como que eu vou fazer para identificar que o exercicio tal, é do nivel básico ou avançado?

outra coisa:
no modelo tem resposta1 e resposta2
sendo que resposta1 são as questoes de perguntas e respostas (dissertativas)
e a resposta2 são as questoes de assinalar, com 4 alternativas, somente 1 correta
sendo que resposta2 quando for exibida ao aluno, terá que exibir as respostas de forma randomica, ou seja, ou na posicao a) ou na posicao cool.gif ou c) ou d)

acho que qt a resposta1 está tudo certo
mas a tabela resposta2 está correta?

muito obrigado!

This message was edited 1 time. Last update was at 12/03/2010 04:47:29

sulito
Virtual Machine Man

Membro desde: 23/11/2009 07:15:59
Mensagens: 607
Offline

buthy wrote:dae galera

valeu pela ajuda de tds!

mas ainda nao consegui chegar a uma conclusao definitiva...

É o seguinte
Preciso fazer um site em php (trabalho de facul)
E estou com problemas para modelar o banco de dados, utilizando o DBDesigner 4

a ideia é a seguinte, terão 3 tipos (niveis) de usuários
(básico, avançado, admin)

os admins poderao cadastrar usuarios e cadastrar exercicios para os alunos
e os alunos irao responder os exercicios

aqui tá o modelo, por enqt:



os alunos que estivessem cadastrados no nivel básico teriam tais exercicios
e os que estivessem no nivel avançado, teriam outros exercicios

essa é uma das duvidas, como que eu vou fazer para identificar que o exercicio tal, é do nivel básico ou avançado?

outra coisa:
no modelo tem resposta1 e resposta2
sendo que resposta1 são as questoes de perguntas e respostas (dissertativas)
e a resposta2 são as questoes de assinalar, com 4 alternativas, somente 1 correta
sendo que resposta2 quando for exibida ao aluno, terá que exibir as respostas de forma randomica, ou seja, ou na posicao a) ou na posicao cool.gif ou c) ou d)

acho que qt a resposta1 está tudo certo
mas a tabela resposta2 está correta?

muito obrigado!


hi cara sujou
se o nome da tabela é usuario os campos nao precisam ter o nomes assim
usu_nome, usu_???, usu_ssss, etc
é claro que se o campo esta na tabela usuario é porque pertence ao usuario, por isso não é necessario reforçar o conceito para por usu_nome, usu_telefone

This message was edited 1 time. Last update was at 12/03/2010 05:52:55


LPI-101
sulito
Virtual Machine Man

Membro desde: 23/11/2009 07:15:59
Mensagens: 607
Offline

ainda não acabei de analisar a logica, mas ai vai outro erro,
nunca usa tabelas do tipo, resposta1, resposta2, resposta3, resposta4 etc.

LPI-101
buthy
HelloWorld

Membro desde: 04/03/2010 07:36:49
Mensagens: 10
Offline

certo
mas o usu_ foi um jeito que eu achei de caso tenha algum nome igual em outra tabela, tipo codigo, pra nao ficar repetido

e qt a resposta1 e resposa2 eu ja mudei

sao dissertativa e multipla_escolha agora
Zeed01
Virtual Machine Man

Membro desde: 27/10/2006 16:44:29
Mensagens: 667
Offline

Bom dia Galera,

Acho que tudo depende da convenção que esta sendo seguida, aqui tenho sistemas que utilizam um "prefixo" no nome do campo indicando qual é tabela e outros que não tem.
A algum tempo foi adotado pela empresa um padrão para criação de nomes de campos, sinceramente acho algo muito tosco, veja o exemplo:

Campo: CODIGO DO CLIENTE
como fica no novo padrão: CD_CLNE

Não parece obvio que CD_CLNE seja o campo que guarda o CODIGO DO CLIENTE ??? rs

O que faço é seguir este padrão exigido no banco e nas minhas classe utilizar nome mais intuitivos, nesse caso acho que colocaria na classe "codigoCliente".

Agora sobre o seu problema, seria melhor postar como esta o seu modelo, pela sua explicação, pra mim pelo menos, não ficou claro.

[]s
buthy
HelloWorld

Membro desde: 04/03/2010 07:36:49
Mensagens: 10
Offline

olha, eu soh quero que no site tenha o seguinte:

uma area Cadastro de Exercicios
onde o admin poderá:

Pergunta: ________________

Tipo de Exercicio: O dissertativa
O multipla escolha

Nivel do Exercicio: O basico
O avançado

em caso de dissertativa:

Resposta: ___________

em caso de multipla escolha:

Opção correta: _______
Opção errada 1: ________
Opção errada 2: ________
Opção errada 3: ________

só que eu nao sei como representar isso no banco :S

também gostaria de saber, se dps disso, tem algum jeito de eu randomizar as opções da de multipla escolha
para que a correta as vezes fique por primeiro, e as vezes no meio, e outras vezes por ultimo na ordem...

não sei se deu pra entender :S
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team