AQUÍ IRÁN TODOS LOS PASOS EXPLICADOS PARA QUE SE PUEDA REPLICAR
\du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+------------
dentista | | {}
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
);
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)
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)