Загрузка данных


-- Лабораторная работа № 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 Лекарство(номер_лекарства)
);