• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

lopes_andre

Questão SQL... Relações entre Tabelas

6 mensagens neste tópico

Viva,

Estou a fazer uma alteração numa base de dados, e em termos de programação isto está a dar algumas dores de cabeça, passo a explicar:

Tenho de fazer um formulário com muitas "Check Boxes", entre aspas, isto porque a aplicação que roda por cima da base de dados não permite a criação de Chek Boxes... para ultrapassar este entrave estou a pensar utilizar List Boxes no entanto não sei se é possivel fazer isto:

- Criar uma tabela auxiliar com:

[TABELA AUXILIAR]

ID | VALOR

1  | SIM

2  | NAO

- Para todos os campos que supostamente seria preferivel usar Check Boxes, usar as tais List Boxes para simular as Check Boxes, indo sempre á mesma tabela auxiliar(em cima) e escolher o ID: 1 ou 2. O problema é que não estou bem a ver como fazer o esquema de chaves primárias e secundárias entre as tabelas...

[TABELA PRINCIPAL]

ID_RELATORIO | HOSPITALIZACAO | CESSACAO_TRABALHO

1                        | SIM                        | NAO

2                        | SIM                        | SIM

A minha pergunta é, como será o esquema de chaves primárias e secundárias entre a TABELA PRINCIPAL e a TABELA AUXILIAR? O que me está a baralhar é o facto de os valores de uma mesma tabela auxiliar serem utilizados numa mesma tabela principal.

Desde já obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu nao percebi bem a tua duvida, mas estás a baralhar duas coisas.

As bases de dados existem precisamente para abstraires os dados da logica da tua aplicação. Ou seja, estás a moldar a tua base de dados por motivos que não têm a ver com os dados... não é boa pratica.

Mas penso que o que que te está a confundir é o conceito de relacionamento. Por exemplo... aí na tabela principal, onde tens "SIM" e "NÃO" terias que substituir por 1 e 2 respectivamente pois "SIM" e "não" já estão na tabela auxiliar. Para isso é que serve a tabela auxiliar. isso é que é um relacionamento.

Mas este exemplo é mau, basta usares 0 e 1, se souberes a que corresponde cada um então é tudo o que precisas... acho que nao é precisa uma tabela para dois registos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, tens razão. Seria isto:

[TABELA AUXILIAR]

ID | VALOR

1  | SIM

2  | NAO

[TABELA PRINCIPAL]

ID_RELATORIO | HOSPITALIZACAO | CESSACAO_TRABALHO

1                        | 1                            | 2

2                        | 1                            | 1

Eu sei que esta lógica não é boa, mas o programa é um programa proprietário e só dá para adaptar segundo regras muitos restritas, apenas tenho disponiveis Triggers(Oracle), caixas de texto e list boxes.

Não me é possivel colocar o SIM / NAO em outro local que não seja em base de dados.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

As maravlhas do software empresarial proprietário.

Penso que o teu problema se prende com o software que estás a usar. Eu já estoua ver que tipo de software é acho impressionante que em portugal software como esse seja o prato do dia. Mas enfim.

Anyway... como é um problema tão especifico alguem teria que usar exactamente o mesmo software para te poder dar dicas. Esse workaround que falas parece-me possível. Boa sorte, se disseres o nome do software pode ser que aí apareça algem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continuo sem perceber muito bem qual é a dúvida...

Se queres traduzir os valores podes usar o decode, embora o cruzamento com as tabelas auxiliares seja o mais acertado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já agora aproveito este tópico (espero que o autor não se importe) para colocar uma questão.

Eu tenho tabelas que utilizam "Check Boxes" (em Access) e em vez de me colocar o valor "Sim" e "Não" coloca "0" e "1". Ora isto em consultas não me dá jeito nenhum. O que eu pretendia era que em vez de me apresentar 0 e 1 me apresentasse Sim e Não consoante a check box esteja ou não seleccionada.

Existe algum comando próprio em Access ou terei de criar uma tabela auxiliar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora