Rui Pinto Posted August 21, 2009 at 11:24 PM Report #284126 Posted August 21, 2009 at 11:24 PM 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
bruno1234 Posted August 21, 2009 at 11:45 PM Report #284132 Posted August 21, 2009 at 11:45 PM 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 Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
vbtipo Posted August 25, 2009 at 07:55 PM Report #284526 Posted August 25, 2009 at 07:55 PM 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. Lema: Se eu não saber de alguma coisa não se preocupem porque tento sempre ajudar alguma coisita, nem que seja, por palpites/sugestões.
softklin Posted September 26, 2009 at 09:49 AM Report #288717 Posted September 26, 2009 at 09:49 AM 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. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.
Rui Pinto Posted September 30, 2009 at 02:04 AM Author Report #289279 Posted September 30, 2009 at 02:04 AM 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
Rui Pinto Posted September 30, 2009 at 02:37 AM Author Report #289282 Posted September 30, 2009 at 02:37 AM 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
softklin Posted September 30, 2009 at 09:46 AM Report #289288 Posted September 30, 2009 at 09:46 AM 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. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now