Ir ao conteúdo
  • Cadastre-se

MySQL Primeiro modelo logico de banco de dados


Posts recomendados

Pessoal, estou fazendo faculdade e estou nas primeiras aulas de Banco de Dados, recebemos uma atividade para criar um modelo lógico de um banco de dados de uma Clínica Médica que continha um sistema de cadastro de pacientes e agendamentos de consultas e exames online. Queria que vocês que sabem muito mais que eu dessem uma olhada e verificassem possíveis erros que cometi em redundância, normalização, essas coisas. Recebi alguns comentários de que a tabela HistoricoMedico não precisaria estar em uma tabela separada e sim dentro da tabela Paciente e que a relação da Tabela Usuario/Paciente estava errada.

create table Paciente (
	codPaciente int primary key,
    nome varchar(100) not null,
    dataNascimento date not null,
    genero varchar(11) not null,
    estadoCivil varchar(11),
    endereco varchar(255),
    telefone varchar(20),
    email varchar(100),
    rg varchar(11) not null unique,
    cpf varchar(11) not null unique,
    cidade varchar(25),
    uf varchar(2),
    cns varchar(25) not null
);

create table Clinica (
	codClinica int primary key,
    nome varchar(100) not null,
    endereco varchar(255),
    telefone varchar(20)
);

create table Medico (
	codMedico int primary key,
    crm int not null unique,
    nome varchar(100) not null,
    especialidade varchar(50) not null,
	inicioTrabalho time not null,
	fimTrabalho time not null,
    telefone varchar(15),
    codClinica int not null,
    foreign key (codClinica) references Clinica(codClinica)
);

create table Usuario (
	codUsuario int primary key,
    nomeUsuario varchar(50) not null unique,
    senha varchar(50) not null,
    codPaciente int not null,
    foreign key (codPaciente) references Paciente(codPaciente)
);

create table Consulta (
	codConsulta int primary key,
    codPaciente int not null,
    codMedico int not null,
    dataHora datetime not null,
    motivo varchar(255),
    presencial varchar(3),
    foreign key (codPaciente) references Paciente(codPaciente),
    foreign key (codMedico) references Medico(codMedico)
);

create table ResultadoConsulta (
	codResultado int primary key,
    codConsulta int not null,
    resultado varchar(255),
    prescricaoMedica varchar(255),
    dataHora datetime not null,
    foreign key (codConsulta) references Consulta(codConsulta)
);

create table HistoricoMedico (
	codHistorico int primary key,
    codPaciente int not null,
    dataRegistro date not null,
    descricao varchar(255),
    foreign key (codPaciente) references Paciente(codPaciente)
);

create table Exame (
	codExame int primary key,
    nome varchar(100) not null,
    descricao varchar(255)
);

create table AgendamentoExame (
	codAgendamento int primary key,
    codPaciente int not null,
    codExame int not null,
    dataHora datetime not null,
    foreign key (codPaciente) references Paciente(codPaciente),
    foreign key (codExame) references Exame(codExame)
);

create table ResultadoExame (
	codResultado int primary key,
    codAgendamento int not null,
    resultado varchar(255),
    dataHora datetime not null,
    foreign key (codAgendamento) references AgendamentoExame(codAgendamento)
);

Screenshot_1.png

Link para o comentário
Compartilhar em outros sites

@weszv1 , olá

Não sei vai ajudar compreender mais fácil.

 

Então quando você faz um "HistoricoMédico", o código do paciente é que vai ser chave para puxar consultas(cod_médico, motivos, prescrição) e exames(data solicitação, resultados), juntando tudo criando um histórico. Por isso não precisaria criar um tabela própria.(na consulta já estaria as observações de doenças existentes (quando médico faz entrevistas e novas encontradas).

 

Sobre tabela usuário seria 1 para 1 (1=1), já que só pode ter um usuário para um paciente  ou usuário = paciente. Pensando na regra de negócios. No diagrama aparece 1(paciente) para N (usuarios).

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!