Actualización que incluye hasta el capítulo 7, parcialemnte trabajado

This commit is contained in:
Celia Palacios Gómez Tagle 2022-11-13 12:59:05 -06:00
parent ab3fba5c95
commit 575beb411b
4 changed files with 268 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,128 @@
DROP TABLE "Phone Number" IF EXISTS;
DROP TABLE "Schedule" IF EXISTS;
DROP TABLE "Assignment" IF EXISTS;
DROP TABLE "Patient" IF EXISTS;
DROP TABLE "Medical Doctor" IF EXISTS;
DROP TABLE "Therapist" IF EXISTS;
DROP TABLE "Therapist Number" IF EXISTS;
DROP TABLE "Medication" IF EXISTS;
DROP TABLE "Patient Medication" IF EXISTS;
DROP TABLE "Psychiatrist" IF EXISTS;
CREATE TABLE "Psychiatrist" (
"ID Number" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT
NULL PRIMARY KEY,
"First Name" VARCHAR(25) NOT NULL,
"Surname" VARCHAR(25) NOT NULL,
"Gender" CHAR(6),
"Street and number" VARCHAR(50),
"City" VARCHAR(25),
"Postal code" CHAR(5),
"State" CHAR(2),
"Phone Number" VARCHAR(10)
);
CREATE TABLE "Medical Doctor" (
"ID Number" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"First Name" VARCHAR(25) NOT NULL,
"Surname" VARCHAR(25) NOT NULL,
"Gender" CHAR(6),
"Street and number" VARCHAR(50),
"City" VARCHAR(25),
"Postal code" VARCHAR(5),
"State" CHAR(2),
"Phone Number" VARCHAR(10)
);
CREATE TABLE "Patient" (
"ID Number" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"First Name" VARCHAR(25) NOT NULL,
"Surname" VARCHAR(25) NOT NULL,
"Gender" CHAR(6),
"Date of Birth" DATE,
"Street and number" VARCHAR(50),
"City" VARCHAR(25),
"Postal code" VARCHAR(5),
"State" CHAR(2),
"Diagnosis" VARCHAR(60),
"Medical Doctor ID" INTEGER,
"Psychiatrist ID" INTEGER,
"Time of registry" TIMESTAMP,
CONSTRAINT "CK_PAT_GNDR" CHECK( "Gender" in ( 'Male', 'Female' ) ),
CONSTRAINT FK_PAT_PSY FOREIGN KEY ("Psychiatrist ID") REFERENCES "Psychiatrist" ("ID Number"),
CONSTRAINT FK_PAT_DOC FOREIGN KEY ("Medical Doctor ID") REFERENCES "Medical Doctor" ("ID Number")
);
CREATE TABLE "Phone Number" (
"Phone ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Patient ID" INTEGER NOT NULL,
"Number" VARCHAR(10),
"Description" VARCHAR(10),
CONSTRAINT FK_PAT_PHN FOREIGN KEY ("Patient ID") REFERENCES "Patient" ("ID Number")
);
CREATE TABLE "Therapist" (
"ID Number" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"First Name" VARCHAR(25) NOT NULL,
"Surname" VARCHAR(25) NOT NULL,
"Gender" CHAR(6),
"Street and number" VARCHAR(50),
"City" VARCHAR(25),
"Postal code" VARCHAR(5),
"State" CHAR(2),
"Tax number" VARCHAR(20),
"Academic degree" VARCHAR(25),
"License number" VARCHAR(15),
"Hiring date" DATE NOT NULL,
"Termination date" DATE,
CONSTRAINT "CK_THP_GNDR" CHECK( "Gender" in ( 'Male', 'Female' ) ),
CONSTRAINT "CK_TERM_DT" CHECK( "Termination date" > "Hiring date" )
);
CREATE TABLE "Therapist Number" (
"Phone ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL
PRIMARY KEY,
"Therapist ID" INTEGER,
"Number" VARCHAR(10),
"Description" VARCHAR(10),
CONSTRAINT FK_THP_PHN FOREIGN KEY ("Therapist ID") REFERENCES "Therapist" ("ID Number")
);
CREATE TABLE "Assignment" (
"Assignment ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Patient ID" INTEGER NOT NULL,
"Therapist ID" INTEGER NOT NULL,
"Date assigned" DATE DEFAULT CURRENT_DATE NOT NULL,
"Date case closed" DATE,
CONSTRAINT FK_PAT_ASMT FOREIGN KEY ("Patient ID") REFERENCES "Patient" ("ID Number"),
CONSTRAINT FK_THP_ASMT FOREIGN KEY ("Therapist ID") REFERENCES "Therapist" ("ID Number"),
CONSTRAINT "CK_CLOSE_DT" CHECK( "Date case closed" >= "Date assigned" )
);
CREATE TABLE "Schedule" (
"Schedule ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Assignment ID" INTEGER,
"Slot date" DATE NOT NULL,
"Slot hour" TIME NOT NULL,
"Status of the session" VARCHAR(20),
CONSTRAINT FK_SCH_ASMT FOREIGN KEY ("Assignment ID") REFERENCES "Assignment" ("Assignment ID")
);
CREATE TABLE "Payment" (
"Payment ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Patient ID" INTEGER NOT NULL,
"Date and time of Payment" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
"Amount" DECIMAL (10, 2) NOT NULL,
"Notes" VARCHAR(100),
"Result" CHAR(6) NOT NULL,
CONSTRAINT FK_PAT_PYMNT FOREIGN KEY ("Patient ID") REFERENCES "Patient" ("ID Number"),
CONSTRAINT CK_DBT CHECK("Result" IN ('DEBIT', 'CREDIT'))
);
CREATE TABLE "Medication" (
"Medication ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Name" VARCHAR(30) NOT NULL,
"Description" VARCHAR(256)
);
CREATE TABLE "Patient Medication" (
"Patient ID" INTEGER NOT NULL,
"Medication ID" INTEGER NOT NULL,
"Dosage" VARCHAR(50),
"Start date" DATE DEFAULT CURRENT_DATE,
"End date" DATE,
CONSTRAINT PK_PAT_MED PRIMARY KEY ("Patient ID", "Medication ID" ),
CONSTRAINT FK_MED_PAT FOREIGN KEY ("Medication ID") REFERENCES "Medication" ("Medication ID"),
CONSTRAINT FK_PAT_MED FOREIGN KEY ("Patient ID") REFERENCES "Patient" ("ID Number"),
CONSTRAINT CK_END_DT CHECK( "End date" >= "Start date" )
);

View File

@ -0,0 +1,140 @@
DROP TABLE "Medicación-paciente" IF EXISTS;
DROP TABLE "Medicación" IF EXISTS;
DROP TABLE "Pago" IF EXISTS;
DROP TABLE "Horario" IF EXISTS;
DROP TABLE "Asignación" IF EXISTS;
DROP TABLE "Teléfono de terapeuta" IF EXISTS;
DROP TABLE "Teléfono" IF EXISTS;
DROP TABLE "Paciente" IF EXISTS;
DROP TABLE "Psiquiatra" IF EXISTS;
DROP TABLE "Médico" IF EXISTS;
DROP TABLE "Terapeuta" IF EXISTS;
CREATE TABLE "Psiquiatra" (
"Número de ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Nombre" VARCHAR(25) NOT NULL,
"Apellido" VARCHAR(25) NOT NULL,
"Sexo" CHAR(6),
"Calle y número" VARCHAR(50),
"Ciudad" VARCHAR(25),
"Código postal" CHAR(5),
"Estado" CHAR(2),
"Teléfono" VARCHAR(10)
);
CREATE TABLE "Médico" (
"Número de ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Nombre" VARCHAR(25) NOT NULL,
"Apellido" VARCHAR(25) NOT NULL,
"Sexo" CHAR(6),
"Calle y número" VARCHAR(50),
"Ciudad" VARCHAR(25),
"Código postal" CHAR(5),
"Estado" CHAR(2),
"Teléfono" VARCHAR(10)
);
CREATE TABLE "Paciente" (
"Número de ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Nombre" VARCHAR(25) NOT NULL,
"Apellido" VARCHAR(25) NOT NULL,
"Sexo" CHAR(6),
"Fecha de nacimiento" DATE,
"Calle y número" VARCHAR(50),
"Ciudad" VARCHAR(25),
"Código postal" CHAR(5),
"Estado" CHAR(2),
"Diagnóstico" VARCHAR(60),
"ID de médico" INTEGER,
"ID de psiquiatra" INTEGER,
"Hora de registro" TIMESTAMP,
CONSTRAINT CK_PAT_GNDR CHECK( "Sexo" in ('Masculino', 'Femenino')),
CONSTRAINT FK_PAT_PSY FOREIGN KEY ("ID del psiquiatra") REFERENCES "Psiquiatra" ("Número de identificación"),
CONSTRAINT FK_PAT_DOC FOREIGN KEY ("ID del médico") REFERENCES "Médico" ("Número de ID")
);
CREATE TABLE "Número de teléfono" (
"ID de teléfono" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"ID del paciente" INTEGER NOT NULL,
"Número" VARCHAR(10),
"Descripción" VARCHAR(10),
CONSTRAINT FK_PAT_PHN FOREIGN KEY ("ID del paciente") REFERENCES "Paciente" ("Número de ID")
);
CREATE TABLE "Terapeuta" (
"Número de ID" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Nombre" VARCHAR(25) NOT NULL,
"Apellido" VARCHAR(25) NOT NULL,
"Sexo" CHAR(6),
"Calle y número" VARCHAR(50),
"Ciudad" VARCHAR(25),
"Código postal" CHAR(5),
"Estado" CHAR(2),
"ID tributario" VARCHAR(20),
"Título académico" VARCHAR(25),
"Número de licencia" VARCHAR(15),
"Fecha de contratación" DATE NOT NULL,
"Fecha de terminación" DATE,
CONSTRAINT "CK_THP_GNDR" CHECK("Género" IN ('Masculino', 'Femenino')),
CONSTRAINT "CK_TERM_DT" CHECK( "Fecha de terminación" > "Fecha de contratación")
);
CREATE TABLE "Número de terapeutas" (
"ID de teléfono" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"ID del terapeuta" INTEGER,
"Número" VARCHAR(10),
"Descripción" VARCHAR(10),
CONSTRAINT FK_THP_PHN FOREIGN KEY ("ID del terapeuta") REFERENCES "Terapeuta" ("Número de ID")
);
CREATE TABLE "Asignación" (
"ID de asignación" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"ID del paciente" INTEGER NOT NULL,
"ID del terapeuta" INTEGER NOT NULL,
"Fecha asignada" DATE DEFAULT CURRENT_DATE NOT NULL,
"Fecha de caso cerrado" DATE,
CONSTRAINT FK_PAT_ASMT FOREIGN KEY ("ID del paciente") REFERENCES "Paciente"
(Número de ID),
CONSTRAINT FK_THP_ASMT FOREIGN KEY ("ID del terapeuta") REFERENCES "Terapeuta" ("Número de ID"),
CONSTRAINT "CK_CLOSE_DT" CHECK( "Fecha de cierre del caso" >= "Fecha de asignación")
);
CREATE TABLE "Horario" (
"ID Horario" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"ID de asignación" INTEGER,
"Fecha de la ranura" DATE NOT NULL,
"Hora del intervalo" TIME NOT NULL,
"Estado de la sesión" VARCHAR(20),
CONSTRAINT FK_SCH_ASMT FOREIGN KEY ("ID de asignación") REFERENCES
"Asignación" ("ID de asignación")
);
CREATE TABLE "Pago" (
"ID de pago" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"ID del paciente" INTEGER NOT NULL,
"Fecha y hora de pago" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP,
"Cantidad" DECIMAL (10, 2) NOT NULL,
"Notas" VARCHAR(100),
"Resultado" CHAR(6) NOT NULL,
CONSTRAINT FK_PAT_PYMNT FOREIGN KEY ("ID del paciente") REFERENCES "Paciente" ("Número de ID"),
CONSTRAINT CK_DBT CHECK("Resultado" IN ('DÉBITO', 'CRÉDITO'))
);
CREATE TABLE "Medicación" (
"ID de medicamento" INTEGER GENERATED BY DEFAULT AS IDENTITY(START WITH 0) NOT NULL PRIMARY KEY,
"Nombre" VARCHAR(30) NOT NULL,
"Descripción" VARCHAR(256)
);
CREATE TABLE "Medicación-paciente" (
"ID del paciente" INTEGER NOT NULL,
"ID de medicamento" INTEGER NOT NULL,
"Dosificación" VARCHAR(50),
"Fecha de inicio" DATE DEFAULT CURRENT_DATE,
"Fecha de cierre" DATE,
CONSTRAINT PK_PAT_MED PRIMARY KEY ("ID del paciente", "ID del medicamento"),
CONSTRAINT FK_MED_PAT FOREIGN KEY ("Medication ID") REFERENCES "Medication" ("Medication ID"),
CONSTRAINT FK_PAT_MED FOREIGN KEY ("ID del paciente") REFERENCES "Paciente" ("Número de ID"),
CONSTRAINT CK_END_DT CHECK( "Fecha de finalización" >= "Fecha de inicio" )
);

Binary file not shown.