marcosfa00 / MVC_Clinica_Dental

0 stars 1 forks source link

PostgreSQL #5

Closed marcosfa00 closed 8 months ago

marcosfa00 commented 1 year ago

CONFIGURAMOS LA BASE DE DATOS EN POSTGRES

AQUÍ IRÁN TODOS LOS PASOS EXPLICADOS PARA QUE SE PUEDA REPLICAR

\du List of roles Role name | Attributes | Member of
-----------+------------------------------------------------------------+------------ dentista | | {}

clinicadental=# create schema clinica; CREATE SCHEMA

CREATE TABLE clinica.trabajadores ( dni VARCHAR(10) PRIMARY KEY, nombre VARCHAR(50), apellido1 VARCHAR(50), apellido2 VARCHAR(50), edad INTEGER, especialidad VARCHAR(50), contraseña VARCHAR(50) );

SELECT * FROM clinica.trabajadores;

dni | nombre | apellido1 | apellido2 | edad | especialidad | contrasenha ------+--------+-----------+-----------+------+-----------------------------+------------- 456A | Marcos | Fernández | Avendaño | 22 | admin | 456A 123B | María | López | Sánchez | 35 | Ortodoncia | 123B 354A | Sara | Gonzalez | Rodríguez | 22 | Odontología estética | 123 789A | Lucas | Pérez | Parracho | 20 | Cirugía oral y maxilofacial | 456 123A | Juan | Pérez | Gómez | 30 | Odontología | 123 (5 rows)

INSERT INTO clinica.trabajadores (dni, nombre, apellido1, apellido2, edad, especialidad, contraseña)
VALUES
('123A', 'Juan', 'Pérez', 'Gómez', 30, 'Odontología', '123'), ('123B', 'María', 'López', 'Sánchez', 35, 'Ortodoncia', '123'), ('123C', 'Pedro', 'González', 'Martínez', 40, 'Administración', '123');

Tras hacer esto, para trabajar correctamente, debemos sestear el search_path de los usuarios que usaremos a el esquema clinica

clinicadental=# alter user dentista in database clinicadental set search_path to clinica ; ALTER ROLE clinicadental=# alter user postgres in database clinicadental set search_path to clinica ; ALTER ROLE

CREAMOS UNA NUEVA TABLA PARA PACIENTES

CREATE TABLE clinica.pacientes ( dni VARCHAR(10) PRIMARY KEY, nombre VARCHAR(50), apellido1 VARCHAR(50), apellido2 VARCHAR(50), edad INTEGER );

insertamos datos de pacientes en esta tabla:

-- Insertar pacientes en la tabla "pacientes" INSERT INTO clinica.pacientes (dni, nombre, apellido1, apellido2, edad) VALUES ('11111111A', 'Juan', 'Gómez', 'Pérez', 30), ('22222222B', 'María', 'López', 'Sánchez', 35), ('33333333C', 'Pedro', 'Fernández', 'González', 45), ('44444444D', 'Ana', 'Martínez', 'Ruiz', 25), ('55555555E', 'Carlos', 'Rodríguez', 'Hernández', 50), ('66666666F', 'Laura', 'García', 'Jiménez', 28), ('77777777G', 'Manuel', 'Silva', 'Torres', 42);

clinicadental=# select * from clinica.pacientes; dni | nombre | apellido1 | apellido2 | edad -----------+--------+-----------+-----------+------ 11111111A | Juan | Gómez | Pérez | 30 22222222B | María | López | Sánchez | 35 33333333C | Pedro | Fernández | González | 45 44444444D | Ana | Martínez | Ruiz | 25 55555555E | Carlos | Rodríguez | Hernández | 50 66666666F | Laura | García | Jiménez | 28 77777777G | Manuel | Silva | Torres | 42 (7 rows)

CREAMOS UNA TABLA D EHISTORIAL MEDICO

CREATE TABLE clinica.historial_medico ( id SERIAL PRIMARY KEY, dni_paciente VARCHAR(10) REFERENCES clinica.pacientes(dni), fecha DATE, descripcion TEXT );

HACEMOS INSERTS DENTRO DE ESTA TABLA DE HISTORIAL MEDICO

-- Insertar historial médico para cada paciente INSERT INTO clinica.historial_medico (dni_paciente, fecha, descripcion) VALUES ('11111111A', '2023-01-01', 'Tratamiento de Ortodoncia'), ('11111111A', '2023-02-15', 'Limpieza dental y chequeo general'), ('22222222B', '2023-03-10', 'Tratamiento de Odontología general'), ('33333333C', '2023-04-05', 'Tratamiento de Periodoncia'), ('44444444D', '2023-05-20', 'Tratamiento de Endodoncia'), ('55555555E', '2023-06-12', 'Tratamiento de Odontopediatría'), ('66666666F', '2023-07-18', 'Tratamiento de Cirugía oral y maxilofacial'), ('77777777G', '2023-08-22', 'Tratamiento de Odontología estética');

esto se vería tal que así:

clinicadental=# select * from clinica.historial_medico; id | dni_paciente | fecha | descripcion
----+--------------+------------+-------------------------------------------- 1 | 11111111A | 2023-01-01 | Tratamiento de Ortodoncia 2 | 11111111A | 2023-02-15 | Limpieza dental y chequeo general 3 | 22222222B | 2023-03-10 | Tratamiento de Odontología general 4 | 33333333C | 2023-04-05 | Tratamiento de Periodoncia 5 | 44444444D | 2023-05-20 | Tratamiento de Endodoncia 6 | 55555555E | 2023-06-12 | Tratamiento de Odontopediatría 7 | 66666666F | 2023-07-18 | Tratamiento de Cirugía oral y maxilofacial 8 | 77777777G | 2023-08-22 | Tratamiento de Odontología estética (8 rows)

marcosfa00 commented 1 year ago

Falta campo contraseña

angelcastineiraduran commented 8 months ago

Listo