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

Rui Pinto

Base de Dados Access

7 mensagens neste tópico

Sou médico Pediatra e trabalho exclusivamente no Hospital. Tenho pequenos/médios conhecimentos de Access que o programa de base de Dados que se encontra disponível nos computadores do Hospital.

Pretendia criar uma base de dados para os doentes que vejo na Consulta do Hospital. Até aqui tenho feito registos em papel ou em registos diversos em várias bases de dados artesanais em Access mas não relacionais – 1 único ficheiro, ou mesmo em Excel,

O que pretendia agora era a criação de uma base de dados pessoal tendo pensado na seguinte estrutura: Assinalo os campos que penso serrem adequados à chave primária. Eu posso tentar construir mas temo que depois na relação entre as tabelas não funcione. Preciso portanto de ajuda.

IDENTIFICAÇÃO

Processo Número - Chave Primária

Nome texto

Telemóvel Número

Telefone Número

Morada texto

Localidade texto

mail

1ª CONSULTA E ALTA

Processo Número - Chave Primária

1ª Consulta Data

Origem texto

Alta Data

Destino texto

Aqui a ideia seria saber quando teve a primeira consulta e quando teve alta.

Origem: Quem foi que pediu ou marcou a consulta.

Destino: Quem passou a seguir o doente: Médico de família; Médico particular,…

PATOLOGIAS

Processo Número- Chave Primária

Patologias texto

Aqui pretendia-se fazer registo das doenças que a criança tinha. É claro que pode ter várias. O problema que sempre tive foi que tive de criar vários campos (Patologia 1, Patologia 2, Patologia 3;….) para conseguir colocar as patologias que a criança tenha. Surge posteriormente o problema quando se quer fazer as pesquisas de uma determinada Patologia. Como pode estar em vários campos nos diversos doentes, tem que se fazer a pesquisa pelos diferentes Campos. Não há maneira de ultrapassar esta questão?

Médico Assistente

Processo Número - Chave Primária

Centro Saúde texto

Extensão Centro Saúde texto

mail-médico

FAX - Médico

Telefone-médico numeno

Médico Assistente texto

Aqui pretende-se saber informação do Centro de Saúde e Médico de Família e contactos rápidos.

CONSULTAS SEGUINTES

ID - Chave Primária

Processo

2ª consulta Data

Intercorrência Texto

Aqui ficariam registadas as consultas seguintes (para além da primeira) e que poderão ser várias. Um campo para registo de alguma intercorrência que tenha acontecido ao doente, ou uma nota.

Alimentação

ID - Chave Primária

Processo

Data data

Amamentação numero

Outra número

Ferro texto

Suplementos texto

Aqui fica registado o tipo de alimentação que a criança está a fazer. Importância para saber se mantém amamentação e neste caso saber até que altura amamentou.

Vacinas

Processo - Chave Primária

PNV Lógica

Nec_V_Influenza Log

Pneumocócica Número

Rotavirus logica

Varicela lógica

Outras Texto

Aqui fica registada a situação vacinal da criança. Realce especial se trata de criança com necessidade de fazer vacinação Inflenza anual.

A TRATAR

Processo Número - Chave Primária

Tarefas texto

Aqui ficariam registadas as notas que ficaram para eu tratar após a consulta do doente. A ideia seria depois criar relatórios com todas as coisas a tratar dos diferentes doentes. Aqui também poderão haver várias tarefas no mesmo doente. O mesmo problema levantado referente às patologias.

Fico a aguardar a vossa ajuda. Cumprimentos  Rui Pinto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi totalmente o teu modelo de dados.

Por exemplo, neste caso:

1ª CONSULTA E ALTA     

Processo  Número  - Chave Primária

1ª Consulta Data 

Origem  texto 

Alta  Data 

Destino  texto 

Referes-te á consulta de um paciente?

Se for o caso, a chave primária devia ser mais explicita e chamar-se IDConsulta por exemplo.

Se a consulta tiver q estar associada a um paciente deve ter uma chave estrangeira q relaciona com a chave primária da tabela Identificação (penso q esta é a tabela dos pacientes, ou pacientes e médicos,...)

podes chamar por exemplo: FK_Processo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelo que vi, esta base de dados foi feita à pressa. Digo-te para fazeres isso com mais calma porque senão o teu programa não vai ficar a funcionar como deve ser e dar-te-á vários erros durante a execução.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto à questão das patologias, não deves criar vários campos para várias patologias, mas sim 3 tabelas: a das crianças (que provavelmente será a da Identificação), a das patologias em si (com as diversas doenças adicionadas conforme forem surgindo ou à priori), e uma que vai relacionar ambas as tabelas, ou seja:

Crianças

idCriança chave primária

nome texto

...

Patologias

idPatologia chave primária

nomePat texto

descrição texto

CriançaPatologia

idCriPat chave primaria

FKPatologia chave estrageira da tabela Patologias

FKCriança chave estrangeira da tabela Crianças

Data data

Tratada booleano/sim ou não

Ou seja, a tabela CriançaPatologia irá fazer todas as ligações entre as crianças e as suas doenças. Adicionalmente com este esquema, cada criança poderá (do ponto de vista de base de dados) ter várias doenças, cada uma com a sua data, mas isso já são extras, que dependem da solução em si.

Aquela tabela "A TRATAR" também terá um caso idêntico à das patologias, mas se for o mesmo, até poderás usar a própria tabela para gerar relatórios. Tem ainda em atenção o que o bruno1234 disse em relação aos nomes, porque mais tarde quando se quiser mudar alguma coisa, já se sabe de onde vêm aqueles campos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi totalmente o teu modelo de dados.

Por exemplo, neste caso:

1ª CONSULTA E ALTA     

Processo  Número  - Chave Primária

1ª Consulta Data 

Origem  texto 

Alta  Data 

Destino  texto 

Referes-te á consulta de um paciente?

Se for o caso, a chave primária devia ser mais explicita e chamar-se IDConsulta por exemplo.

Se a consulta tiver q estar associada a um paciente deve ter uma chave estrangeira q relaciona com a chave primária da tabela Identificação (penso q esta é a tabela dos pacientes, ou pacientes e médicos,...)

podes chamar por exemplo: FK_Processo

Peço desculpa por só responder agora, mas só hoje consegui ver que tinha já ajudas. Obrigado pela ajuda. Relativamente ás questões que colocas:

Na tabela 1ª Consulta e Alta

O campo "Processo" seria o nº do processo do doente que seria para relacionar com o "Processo" da tabela "Identificação".

Costumamos distinguir as Primeiras consultas que são efectivamente as primeiras e que são o primeiro contacto com o doente. Um doente não poderá ter mais que uma primeira consulta, mas poderá ter muitas consultas seguintes. Por isso  criei uma outra tabela com essa consultas (consultas seguintes). Não sei se vem complicar ou haverá outra forma de distinguir uma primeira das seguintes.

Sugeres que a chave primária desta tabela (1ª Consulta e Alta) deveria chamer-se IDConsulta.

Se bem percebi este campo seria de númeração automática, e que esta tabela se relacionaria com a tabela "IDENTIFICAÇÃO" dos doentes que tem a chave primária no campo "Processo"  Depois teria que criar outro campo na tabela (1ª Consulta e Alta) com o nome FK_Processo (chave estrangeira) que relacionaria com o campo Processo da Tabela (IDENTIFICAÇÃO). É assim?

O problema é que apesar de já ter procurado e lido não encontrei ainda onde me explicasse o significado de chave estrangeira e como a criar. Podias indicar-me onde posso ver isso?

Muito obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quanto à questão das patologias, não deves criar vários campos para várias patologias, mas sim 3 tabelas: a das crianças (que provavelmente será a da Identificação), a das patologias em si (com as diversas doenças adicionadas conforme forem surgindo ou à priori), e uma que vai relacionar ambas as tabelas, ou seja:

Crianças

idCriança chave primária

nome texto

...

Patologias

idPatologia chave primária

nomePat texto

descrição texto

CriançaPatologia

idCriPat chave primaria

FKPatologia chave estrageira da tabela Patologias

FKCriança chave estrangeira da tabela Crianças

Data data

Tratada booleano/sim ou não

Ou seja, a tabela CriançaPatologia irá fazer todas as ligações entre as crianças e as suas doenças. Adicionalmente com este esquema, cada criança poderá (do ponto de vista de base de dados) ter várias doenças, cada uma com a sua data, mas isso já são extras, que dependem da solução em si.

Aquela tabela "A TRATAR" também terá um caso idêntico à das patologias, mas se for o mesmo, até poderás usar a própria tabela para gerar relatórios. Tem ainda em atenção o que o bruno1234 disse em relação aos nomes, porque mais tarde quando se quiser mudar alguma coisa, já se sabe de onde vêm aqueles campos.

Obrigado pela ajuda

Penso que percebi a ideia. O problema é que não sei o que são chaves estrangeiras. Podias indicar-me um livro ou outra literatura para que possa perceber como se cria e depois como se relaciona? o meu mail ruicpinto@gmail.com

Pelo esquema que fizeste percebi que organizas as coisas de forma que o campo que é chave primária é identificafo com ID...  Tinha a noção que o ID seria para os de numeração automática. É assim?    e os campos com chave estrangeira iniciam-se com FK... seguida com o nome do campo da outra tabela que  irá relacionar. É assim?

Outra questão que eu achava importante era o número do processo do doente e que eu pensava ser esse que iria estar presente em praticamente todas as tabelas  para proceder ao relacionamento. Mas vejo assim que não é utilizado. No entanto é um elemento chave para a identificação e que é unico.

Obrigado

Rui Pinto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

De forma muito rápida, uma chave estrangeira é uma chave primária de outra tabela, isto é, a intenção da chave estrangeira numa tabela é indicar que dado registo com essa chave a '1234' corresponde a toda a informação que está referenciada com a chave primária '1234' da outra tabela.

Tenta ver este exemplo prático:

http://www.visualcase.com/kbase/database_basics_-_foreign_keys.htm

Na internet não sei de lugares com informação teórica sobre bases de dados, mas quanto a livros, podes tentar adquirir este:

http://www.wook.pt/ficha/sql-structured-query-language/a/id/166034

Está em português e explica bastante sobre teoria de base de dados, e inclui exemplos em Access e outras aplicações na sua componente teórica.

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