141 lines
5.0 KiB
SQL
141 lines
5.0 KiB
SQL
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" )
|
|
);
|
|
|