25/05/2014

Consulta Dentista

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

Respostas

25/05/2014

Mariana Carvalho

eu acho que entendi sim, nesse exemplo você deseja trabalhar com imagens no banco de dados, é isso?

ja tinha visto esse material?

[url]http://www.macoratti.net/vb5_isql.htm[/url]
Responder Citar

25/05/2014

Marisiana

Olá Guilherme!
Você pode criar uma tabela IMAGEM para a armazenar todas as imagens por consulta, por cliente e por dentista.
Esta tabela vai possui os atributos: ID_IMAGEM (PK), ID_CLIENTE (FK), ID_DENTISTA (FK), IMAGEM e se quiser pode até colocar um campo pra armazenar observações referentes a imagem. Outro atributo que possa ser útil é a DATA de alteração ou inserção da imagem, pois pode ser que você precise saber quais são as imagens mais recentes ou as imagens mais antigas.


Responder Citar

25/05/2014

Marisiana

Com relação ao tipo de dados do atributo IMAGEM, ele deverá ser do tipo BLOB (binary large object) é um tipo de dados que pode pode armazenar dados binarios e são úteis para armazenar informação digital (por exemplo, imagens, áudio, vídeo).
Encontrei esse artigo que talvez te ajude a entender melhor: [url]http://www.macoratti.net/08/11/asp_blobs.htm[/url]
Responder Citar

25/05/2014

Guilherme

Muito obrigado.
Vou implementar já.
E em relação à imagem que quero que apareça sempre que houver uma consulta médica?
Crio alguma tabela com essa imagem como atributo?
Responder Citar

25/05/2014

Marisiana

Não sei se isso que vou t dizer é a melhor solução, porque não conheço a análise do negócio.

Pelo que entendi, essa imagem principal é composta pelo conjunto de imagens de todos os dentes do cliente, já que o dentista pode marcar quais dentes ele tratou em cada consulta.
Então, você poderia criar uma tabela ARCADA_DENTARIA ( COD_ARCADA (PK), DESCRICAO, ORDEM ) que armazenará um registro dos nomes e a ordem dos dentes. Esse atributo ORDEM você poderá utilizar pra ordenar as imagens formando a arcada dentária do cliente.
Na tabela IMAGEM, você deverá ter uma FK para identificar à qual dente da arcada dentária a imagem pertence.
Com relação as observações que ele faz, você tem que ver se é uma informação por imagem (dente) ou se são informações da consulta. Se for da consulta, armazena em um campo na tabela CONSULTA, senão armazena por imagem na tabela IMAGEM.

Agora, cabe a você analisar, se isso que falei pode ser aplicado.
Responder Citar

25/05/2014

Marisiana

Outra questão que esqueci de comentar...
Deverá ser armazenado um histórico das alterações nas imagens a fim de se obter a evolução do que foi realizado em cada dente?
Responder Citar

26/05/2014

Guilherme

Sim, pois assim seria possivel ver a evolução durante o tratamento.
Na Tabela Imagem devo também incluir o IdConsulta certo? Para associar as imagens/docs adicionados em cada consulta.
Entre Consulta e Imagens temos um relacionamento 1:N, pois em cada consulta pode ser adicionadas várias imagens.
Mas e se não for necessario adicionar nenhum Doc/Imagem? Este relacionamento permite isso?
Responder Citar

27/05/2014

Marisiana

Isso! Pois cada imagem deverá estar vinculada a uma consulta.
Nesse caso, se podem haver consultas que não tenham nenhuma imagem você deverá utilizar 0:N.
Se você utilizar 1:N todas as consultas deverá ter no mínimo uma imagem.
Responder Citar

28/05/2014

Guilherme

Nesse caso, se podem haver consultas que não tenham nenhuma imagem você deverá utilizar 0:N. Se você utilizar 1:N todas as consultas deverá ter no mínimo uma imagem.


Concordo, mas como crio esse tipo de relacionamento no SQL Management Studio?
Penso que N poderá ser 0, 1, 2, .., ou seja, cada consulta pode ter associado 0, 1, 2, ou mais Imagens.
Criei a tabela Imagem com IdImagem, IdConsulta, Descricao, Imagem. Não coloquei data pois, através do IDConsulta acesso à tabela Consulta e esta já tem a data.
Responder Citar

28/05/2014

Marisiana

Então, você vai ter que incluir uma FK na tabela de consultas com o IdImagem e deixá-lo como opcional e não precisa do IdConsulta na tabela imagem.
Assim, uma consulta poderá ser incluida sem que seja necessário vincular uma imagem a ela.
Responder Citar

28/05/2014

Guilherme

Estou baralhado.
Tentando ir devagar. Tenho as seguintes tabelas e relacionamentos.
[img]http://arquivo.devmedia.com.br/forum/imagem/371781-20140528-135322.png[/img]
A Tabela ANEXOS armazena fotos que podem ser tiradas numa consulta, pode ser 0, 1,....
Depois a tabela IMAGEM vai guardar cada um dos dentes que quero que apareça sempre que uma nova CONSULTA é criada.
Por fim, na tabela ARCADA_DENTARIA é onde, a cada imagem de IMAGEM digo qual o seu lugar para depois apresentar na tela.

A minha dúvida é então a parte do relacionamento 0:N, não consegui entender como fazer.
Desculpe a falta de entendimento, mas se puder explicar melhor.
Obrigado desde já.
Responder Citar

28/05/2014

Marisiana

Sim, te entendo!
Quando você cria um relacionamento 0:N significa que pode ter nenhum ou muitos registros.
No teu caso, uma consulta poderá ter nenhuma imagem ou ela poderá ter uma ou mais imagens. Por isso, o atributo que você armazenará o código da imagem na tabela consulta não poderá ser NOT NULL, mas isso você vai tratar no momento da criação da estrutura do banco de dados.
No caso de você vir a manter um histórico das imagens alteradas, cada vez que uma imagem for alterada deverá ser inserido um novo registro na tabela imagem. Então você deverá ter um relacionamento 1:1, que significa que uma imagem deverá estar associada a uma única uma consulta.
Na minha opinião, você deve relacionar a tabela IMAGEM à tabela CONSULTA e a tabela ARCADA_DENTÁRIA deverá estar relacionada apenas a tabela IMAGEM.
Responder Citar

28/05/2014

Marisiana

Isso que eu falo é de acordo com o entendimento que tive através das informações que você me falou...
Cabe a você verificar se atende as necessidades da realidade que vc está analisando.
Responder Citar

28/05/2014

Guilherme

Desde já agradeço a sua ajuda, mas não encontro material sobre relacionamentos 0:N, o mais parecido é 1:N.
Aprecio muito a sua ajuda a tentar entender melhor o problema pois sou bastante iniciante nesta matéria de Base de Dados.
Tenho aprendido bastante e gosto sempre alguém mais sabio que eu me ajude.
Responder Citar

29/05/2014

Marisiana

Por nada! Fico feliz em poder ajudar pelo menos um pouco!
Está certo em ir com calma, porque é importante entender como é essa parte de modelagem, é um conhecimento que vai ser fundamental em tudo...

Encontrei esse site Metrópole Digital que possui um conteúdo interessante, é um curso e os conteúdos estão separados em aulas . Vale a pena conferir!

Responder Citar