-- Лабораторная работа № 2
-- БД: Поликлиника
-- СУБД: SQLite
-- Примечание: в SQLite VARCHAR(n) реализуется как TEXT,
-- INT — как INTEGER, DATE — как TEXT (формат YYYY-MM-DD).
PRAGMA foreign_keys = ON;
-- 1. Сущность "Пациент"
CREATE TABLE Пациент (
номер_карты INTEGER PRIMARY KEY,
фамилия TEXT NOT NULL,
имя TEXT NOT NULL,
отчество TEXT,
дата_рождения TEXT NOT NULL,
пол TEXT NOT NULL,
телефон TEXT,
email TEXT
);
-- 2. Сущность "Болезнь"
CREATE TABLE Болезнь (
МКБ TEXT PRIMARY KEY,
название TEXT NOT NULL,
класс_болезни TEXT NOT NULL,
симптомы TEXT
);
-- 3. Сущность "Лекарство"
CREATE TABLE Лекарство (
номер_лекарства INTEGER PRIMARY KEY,
название TEXT NOT NULL,
форма_выпуска TEXT NOT NULL,
действующее_вещество TEXT NOT NULL
);
-- 4. Сущность "Болезнь_пациента" (связь Пациент 1:M Болезнь)
CREATE TABLE Болезнь_пациента (
ID_болезни INTEGER PRIMARY KEY,
номер_карты INTEGER NOT NULL REFERENCES Пациент(номер_карты),
МКБ TEXT NOT NULL REFERENCES Болезнь(МКБ)
);
-- 5. Сущность "Рецепт" (связь Пациент 1:M Рецепт)
CREATE TABLE Рецепт (
номер_рецепта INTEGER PRIMARY KEY,
дата_формирования TEXT NOT NULL,
срок_действия TEXT NOT NULL,
примечания TEXT,
номер_карты INTEGER NOT NULL REFERENCES Пациент(номер_карты)
);
-- 6. Сущность "Назначение" (связь Рецепт 1:M Назначение,
-- Назначение M:1 Лекарство)
CREATE TABLE Назначение (
ID_назначения INTEGER PRIMARY KEY,
дозировка TEXT NOT NULL,
кратность_приема TEXT NOT NULL,
способ_приема TEXT NOT NULL,
курс TEXT NOT NULL,
номер_рецепта INTEGER NOT NULL REFERENCES Рецепт(номер_рецепта),
номер_лекарства INTEGER NOT NULL REFERENCES Лекарство(номер_лекарства)
);