Consulta Dentista

25/05/2014

0

Olá a todos.
Estou a desenvolver uma Base de Dados para Salvar as consultas de dentária.
Assim tenho a tabela CLIENTE, DENTISTA, CONSULTA.
Cliente e Dentista têm atributos semelhantes, como Nome, Endereço, Sexo, e cada um cod(PK).
A Tabela Consulta tem a a chave estrangeira associada a Cliente e outra associada a Dentista. Tem ainda a Data da Consulta.
Tenho agora uma dúvida.
Em cada consulta o dentista pode tirar fotos aos nossos dentes e arquiva-las. Devo inserir isto na tabela Consulta? Que tipo de atributo?
E ainda quero que, em cada consulta, o dentista tenha a seu dispor a foto de todos os dentes de uma boca, e que possa assinalar quais os dentes que tratou nessa mesma consulta. Por exemplo, o dentista deve ser capaz de sublinhar um dente qualquer e depois digitar um pequeno texto. Como armazeno isto na Base de Dados? Coloco também na tabela Consulta?
Talvez a minha explicação esteja um pouco confusa, mas espero ter passado a ideia.
Obrigado
É este género de imagem que quero que apareça sempre que alguém vá a uma consulta.
[img]http://arquivo.devmedia.com.br/forum/imagem/371781-20140525-064802.png[/img]
Guilherme

Guilherme

Responder

Posts

29/05/2014

Marisiana Battistella

Mais algumas opções:
[url:descricao=Tecnologias de Banco de Dados e Modelagem de Dados Parte 2 Leia mais em: Tecnologias de Banco de Dados e Modelagem de Dados Parte 2 https://www.devmedia.com.br/tecnologias-de-banco-de-dados-e-modelagem-de-dados-parte-2/1871#ixzz337mQPYBU]https://www.devmedia.com.br/tecnologias-de-banco-de-dados-e-modelagem-de-dados-parte-2/1871[/url]

Cardinalidade

[url:descricao=Cardinalidade (modelagem de dados)]http://pt.wikipedia.org/wiki/Cardinalidade_(modelagem_de_dados)[/url]

[url:descricao=Modelagem de Dados 2 – Os Relacionamentos]http://imasters.com.br/artigo/4799/banco-de-dados/modelagem-de-dados-2-os-relacionamentos/[/url]
Responder

30/05/2014

Marisiana Battistella

Se tiver dúvidas pode ir perguntando, responderei o que eu souber...
Responder

02/06/2014

Guilherme

Muito muito obrigado. Tenho lido o material e é muito bom.
Uma outra relação que me está a dar a volta à cabeça é a relação entre Paciente e Seguro de Saúde.
Um Paciente tem duas opções: Tem Seguro ou Não Tem Seguro.
Um Seguro com determinadas condições pode ser prestado a mais do que um Paciente.

Deste modo, devo criar o relacionamento Paciente - Seguro, que será 0:N
E o relacionamento inverso, Seguro - Paciente, que será 1:N.

Isto será possível de implementar?
Responder

02/06/2014

Marisiana Battistella

Um questionamento necessário pra vc definir esse relacionamento é:
- Um paciente pode ter mais de um Seguro Saúde?

- Um seguro saúde, pode pertencer a quantos pacientes? Ele pode existir sem que tenha pacientes vinculados a ele?
Responder

02/06/2014

Guilherme

Um Paciente só pode ter um Seguro de Saúde.
Um Seguro pode ter Zero ou mais Pacientes. Pode ter sido criado e ainda ninguem se ter vinculado a ele, e pode ter várias pessoas a si associado
Responder

02/06/2014

Marisiana Battistella

Então vc tem o relacionamento:
- Um Paciente só pode ter um Seguro de Saúde = 0:1 ( o paciente só pode ter um ou nenhum seguro de saúde )
- Um Seguro pode ter Zero ou mais Pacientes = 0:N ( o seguro pode ter nenhum ou muitos pacientes vinculados a ele)

Correto?
Responder

02/06/2014

Guilherme

Sim, correto.
O problema é criar esses relacionamentos, pois quando crio tabelas o que faço é apenas ligar a chave strangeira de uma tabela a uma chave primaria de outra tabela.
Acabam por ser apenas relacionamentos 1:N(chave primaria:chave estrangeira)
Como posso condicionar para serem relacionamentos como os especificados no seu post anterior?
Responder

02/06/2014

Marisiana Battistella

Você tem que deixar o atributo que contém a FK que referencia o Seguro de Saúde como opcional.
Assim, esse campo só receberá informação se o paciente tiver um seguro pra ser vinculado, caso contrário ele permancerá em branco.
Responder

02/06/2014

Marisiana Battistella

Pelo menos foi assim que aprendi a implementar essa questão de opcionalidade e obrigatoriedade.
Responder

02/06/2014

Guilherme

Quer dizer deixar a FK como NULL certo?
Responder

03/06/2014

Marisiana Battistella

A FK você vai criar normalmente. O campo da tabela é que não poderá ser NOT NULL, para que você consiga inserir um paciente sem precisar informar um seguro de saúde.
Responder

03/06/2014

Guilherme

Sim, entendi.
Eu tenho posto sempre a chave estrangeira nas tabelas que tomam o valor de 'N' num relacionamento.
Talvez esteja pensando muito muito mal assim....

Por exemplo, a relação MEDICO:CONSULTA é uma relação 1:N e por isso a tabela CONSULTA tem o IdMedico(PK na tabela MEDICO).

No caso da relação CONSULTA:IMAGENS quem tem N no relacionamento(IMAGENS) não é quem fica com a chave estrangeira, mas sim a tabela CONSULTA.
Eu vi que em MySql tem como criar relacionamentos e especificar se pode ou não ter valor opcional, 0.
Mas em Sql Server não sei.
[img]http://arquivo.devmedia.com.br/forum/imagem/371781-20140603-174222.png[/img]
Responder

06/06/2014

Marisiana Battistella

Desculpa demora em responder...

Não é correto pensar assim, pois se vc tivesse um relacionamento 1:1 e 1:1 o que vc faria?
Quando vc está modelando, vc não deve se preocupar tanto em como vai ser a estrutura no banco de dados, pois é a aplicação que deverá se adaptar ao modelo de dados e não o contrário.

No exemplo que vc aprensentou, vc deve entender que as consultas são realizadas por um médico e por isso toda consulta deverá ter um médico associado.
As consultas serão realizadas para um paciente, então esse paciente também deverá estar vinculado a ela.
Todo paciente terá um histórico com imagens dos dentes que foram trabalhados e cada imagem representará um dente. Então as imagens estarão vinculadas ao paciente e ao dente que ela representa na arcada dentária.
Responder

06/06/2014

Marisiana Battistella

Depois desse tipo de compreensão é q você vai definir a cardinalidade dos relacionamentos, pra ver se são 1:1, 1:N, 0:N, assim por diante.
Somente, depois de tudo isso definido e aprovado é que vc vai se preocupar em interpretar o modelo para criar o banco de dados.
Responder

06/06/2014

Guilherme

Essa tabela Imagens não é para a arcada, é para as fotos que podem ser tiradas ao longo das consultas, daí estarem relacionadas com a tabela Consulta.
Porque acha que Imagens deve estar relacionado com Paciente?
Eu achei melhor associar a Consulta para que na proxima Consulta possa ver a evolução.

Em relação à Arcada pensei também relacionar a Consulta, pois vai ser possivel tomar anotações nela em cada Consulta.

O meu problema é estar a pensar no problema e estar a criar as tabelas no SGBD ao mesmo tempo, mas vc tem me ajudado bastante a melhorar o meu pensamento.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar