DROP TABLE IF EXISTS `Справка+`;
CREATE TABLE `Справка+`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Слк` CHAR (3) NOT NULL
, `Код` CHAR (3) NOT NULL
, `Название` VARCHAR (50) NOT NULL
, `Содержание` VARCHAR (100) NULL
, `Ид_родитель\СПР^СПР` INT NULL REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `Ун1\СПР` UNIQUE (`Слк`, `Код`)
);
INSERT INTO `Справка+` VALUES
(DEFAULT, "ДОЛ", "про", "проф.", "профессср кафедры", NULL),
(DEFAULT, "ДОЛ", "доц", "доц. ", "доцент кафедры", NULL),
(DEFAULT, "ДОЛ", "лаб", "лаборант", NULL, NULL),
(NULL, "СТЕ", "дтн", "д-р техн. наук", "доктор технических наук", NULL),
(NULL, "СТЕ", "ктн", "канд. техн. наук", "кандидат технических наук", NULL),
(NULL, "ЗВА", "про", "проф.", "профессор ВАК", NULL),
(NULL, "ЗВА", "доц", "доц.", "доцент ВАК", NULL),
(NULL, "ПОД", "ИРТ", "ФИРТ", "ф-т информатикики и робототехники", NULL);
INSERT INTO `Справка+` SELECT
NULL, "ПОД", "АСУ", "каф. АСУ", "каф. автоматизир. систем упр-я", `Ид` FROM `Справка+` WHERE `Слк`="ПОД" AND `Код`="ИРТ";
SELECT "Table `Справка+`" FROM `Справка+` WHERE 1=0;
SELECT * FROM `Справка+`;
DROP TABLE IF EXISTS `Сотрудник%ПЕРС`;
CREATE TABLE `Сотрудник%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` INT NOT NULL UNIQUE
, `Паспорт` INT NOT NULL UNIQUE
, `ФИО` VARCHAR (50) NOT NULL
, `Сведения` VARCHAR (50) NOT NULL
, `Ид_ДОЛ\СОТ^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
);
INSERT INTO `Сотрудник%ПЕРС` SET `Ид` = NULL, `Код` = "1", `Паспорт` = "123534", `ФИО` = "Иванов А.Б.", `Сведения` = "1", `Ид_ДОЛ\СОТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="ДОЛ" AND `Код`="про");
SELECT "'Сотрудник%ПЕРС` Table Content:" FROM `Сотрудник%ПЕРС` WHERE 1=0;
SELECT* FROM `Сотрудник%ПЕРС`;
DROP TABLE IF EXISTS `Руководитель:СОТ`;
CREATE TABLE `Руководитель:СОТ`
( `Ид\РУК^СОТ` INT NOT NULL
REFERENCES `Сотрудник%ПЕРС` (`Ид`)
, `Сведения` VARCHAR (50) NOT NULL
, CONSTRAINT `ПК\РУК` PRIMARY KEY (`Ид\РУК^СОТ`)
);
INSERT INTO `Руководитель:СОТ` SET `Ид\РУК^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "1"), `Сведения` = "1";
SELECT "'Руководитель:СОТ` Table Content:" FROM `Руководитель:СОТ` WHERE 1=0;
SELECT* FROM `Руководитель:СОТ`;
DROP TABLE IF EXISTS `Член комиссии:СОТ`;
CREATE TABLE `Член комиссии:СОТ`
( `Ид\ЧК^СОТ` INT NOT NULL
REFERENCES `Сотрудник%ПЕРС` (`Ид`)
, `Сведения` VARCHAR (50) NOT NULL
, CONSTRAINT `ПК\ЧК` PRIMARY KEY (`Ид\ЧК^СОТ`)
);
INSERT INTO `Член комиссии:СОТ` SET `Ид\ЧК^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "1"), `Сведения` = "1";
SELECT "'Член комиссии:СОТ` Table Content:" FROM `Член комиссии:СОТ` WHERE 1=0;
SELECT* FROM `Член комиссии:СОТ`;
DROP TABLE IF EXISTS `Секретарь:СОТ`;
CREATE TABLE `Секретарь:СОТ`
( `Ид\СЕК^СОТ` INT NOT NULL
REFERENCES `Сотрудник%ПЕРС` (`Ид`)
, `Сведения` VARCHAR (50) NOT NULL
, CONSTRAINT `ПК\СЕК` PRIMARY KEY (`Ид\СЕК^СОТ`)
);
INSERT INTO `Секретарь:СОТ` SET `Ид\СЕК^СОТ` = (SELECT `Ид` FROM `Сотрудник%ПЕРС` WHERE `Код` = "1"), `Сведения` = "1";
SELECT "'Секретарь:СОТ` Table Content:" FROM `Секретарь:СОТ` WHERE 1=0;
SELECT* FROM `Секретарь:СОТ`;
DROP TABLE IF EXISTS `Абитуриент%ПЕРС`;
CREATE TABLE `Абитуриент%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` INT NOT NULL UNIQUE
, `Паспорт` INT NOT NULL UNIQUE
, `ФИО` VARCHAR (50) NOT NULL
, `Сведения` VARCHAR (50) NOT NULL
, `Рейтинг абитуриента` VARCHAR (50) NOT NULL
, `Дата возврата документов` VARCHAR (50) NOT NULL
, `Ид\АБИТ^СЕК` INT NULL
REFERENCES `Секретарь:СОТ` (`Ид\СЕК^СОТ`)
, `Ид_КАТ\АБИТ^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
);
INSERT INTO `Абитуриент%ПЕРС` SET `Ид` = NULL, `Код` = "1", `Паспорт` = "432323", `ФИО` = "Петров А.Я.", `Сведения` = "1", `Рейтинг абитуриента` = "98", `Дата возврата документов` = "12.05.24", `Ид\АБИТ^СЕК` = (SELECT `Ид\СЕК^СОТ` FROM `Секретарь:СОТ` WHERE `Ид\СЕК^СОТ` = "1"), `Ид_КАТ\АБИТ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="ПОД" AND `Код`="ИРТ");
SELECT "'Абитуриент%ПЕРС` Table Content:" FROM `Абитуриент%ПЕРС` WHERE 1=0;
SELECT* FROM `Абитуриент%ПЕРС`;
DROP TABLE IF EXISTS `Приказ о зачислении`;
CREATE TABLE `Приказ о зачислении`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер` INT NOT NULL UNIQUE
, `Дата` VARCHAR (50) NOT NULL
, `Ид\ПРИК^РУК` INT NOT NULL
REFERENCES `Руководитель:СОТ` (`Ид\РУК^СОТ`)
);
INSERT INTO `Приказ о зачислении` SET `Ид` = NULL, `Регномер` = "1", `Дата` = "11.04.25", `Ид\ПРИК^РУК` = (SELECT `Ид\РУК^СОТ` FROM `Руководитель:СОТ` WHERE `Ид\РУК^СОТ` = "1");
SELECT "'Приказ о зачислении` Table Content:" FROM `Приказ о зачислении` WHERE 1=0;
SELECT* FROM `Приказ о зачислении`;
DROP TABLE IF EXISTS `Категория абитуриента в приказе:ПРИК*КАТ`;
CREATE TABLE `Категория абитуриента в приказе:ПРИК*КАТ`
( `Ид\КАП^ПРИК` INT NOT NULL
REFERENCES `Приказ о зачислении` (`Ид`)
, `Ид_КАТ\КАП^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `ПК\КАП` PRIMARY KEY (`Ид\КАП^ПРИК`, `Ид_КАТ\КАП^СПР`)
);
INSERT INTO `Категория абитуриента в приказе:ПРИК*КАТ` SET `Ид\КАП^ПРИК` = (SELECT `Ид` FROM `Приказ о зачислении` WHERE `Регномер` = "1"), `Ид_КАТ\КАП^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="ПОД" AND `Код`="ИРТ");
SELECT "'Категория абитуриента в приказе:ПРИК*КАТ` Table Content:" FROM `Категория абитуриента в приказе:ПРИК*КАТ` WHERE 1=0;
SELECT* FROM `Категория абитуриента в приказе:ПРИК*КАТ`;
DROP TABLE IF EXISTS `Факультет`;
CREATE TABLE `Факультет`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` INT NOT NULL UNIQUE
, `Название` VARCHAR (50) NOT NULL
);
INSERT INTO `Факультет` VALUES
( NULL, "1", "фак"),
( NULL, "2", "ирт");
SELECT "'Факультет` Table Content:" FROM `Факультет` WHERE 1=0;
SELECT* FROM `Факультет`;
DROP TABLE IF EXISTS `Направление`;
CREATE TABLE `Направление`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` INT NOT NULL UNIQUE
, `Название` VARCHAR (50) NOT NULL
, `Ид\НАП^ФАК` INT NOT NULL
REFERENCES `Факультет` (`Ид`)
);
INSERT INTO `Направление` SET `Ид` = NULL, `Код` = "1", `Название` = "PRO", `Ид\НАП^ФАК` = (SELECT `Ид` FROM `Факультет` WHERE `Код` = "1");
SELECT "'Направление` Table Content:" FROM `Направление` WHERE 1=0;
SELECT* FROM `Направление`;
DROP TABLE IF EXISTS `Зачисленный абитуриент`;
CREATE TABLE `Зачисленный абитуриент`
( `Ид\ЗАЧИ^АБИТ` INT NOT NULL
REFERENCES `Абитуриент%ПЕРС` (`Ид`)
, `Ид\ЗАЧИ^НАП` INT NOT NULL
REFERENCES `Направление` (`Ид`)
, `Ид\ЗАЧИ^КАП` INT NOT NULL
REFERENCES `Категория абитуриента в приказе:ПРИК*КАТ` (`Ид\КАП^ПРИК`)
, CONSTRAINT `ПК\ЗАЧИ` PRIMARY KEY (`Ид\ЗАЧИ^АБИТ`)
);
INSERT INTO `Зачисленный абитуриент` SET `Ид\ЗАЧИ^АБИТ` = (SELECT `Ид` FROM `Абитуриент%ПЕРС` WHERE `Код` = "1"), `Ид\ЗАЧИ^НАП` = (SELECT `Ид` FROM `Направление` WHERE `Код` = "1"), `Ид\ЗАЧИ^КАП` = (SELECT `Ид\КАП^ПРИК` FROM `Категория абитуриента в приказе:ПРИК*КАТ` WHERE `Ид\КАП^ПРИК` = "1");
SELECT "'Зачисленный абитуриент` Table Content:" FROM `Зачисленный абитуриент` WHERE 1=0;
SELECT* FROM `Зачисленный абитуриент`;
DROP TABLE IF EXISTS `Кафедра\ФАК`;
CREATE TABLE `Кафедра\ФАК`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\КАФ^ФАК` INT NOT NULL
REFERENCES `Факультет` (`Ид`)
, `Код` VARCHAR (50) NOT NULL
, `Название` VARCHAR (50) NOT NULL
);
INSERT INTO `Кафедра\ФАК` SET `Ид` = NULL, `Ид\КАФ^ФАК` = (SELECT `Ид` FROM `Факультет` WHERE `Код` = "1"), `Код` = "1", `Название` = "кафедра";
SELECT "'Кафедра\ФАК` Table Content:" FROM `Кафедра\ФАК` WHERE 1=0;
SELECT* FROM `Кафедра\ФАК`;
DROP TABLE IF EXISTS `Документы\АБИТ`;
CREATE TABLE `Документы\АБИТ`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Ид\ДОКА^АБИТ` INT NOT NULL
REFERENCES `Абитуриент%ПЕРС` (`Ид`)
, `Регномер` VARCHAR (50) NOT NULL
, `Реквизиты` VARCHAR (50) NOT NULL
, `Дата подачи` VARCHAR (50) NOT NULL
, `Ид\ДОКА^СЕК` INT NOT NULL
REFERENCES `Секретарь:СОТ` (`Ид\СЕК^СОТ`)
, `Ид\ДОКА^КАФ` INT NOT NULL
REFERENCES `Кафедра\ФАК` (`Ид`)
, `Ид_ВДОК\ДОКА^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
);
INSERT INTO `Документы\АБИТ` SET `Ид` = NULL, `Ид\ДОКА^АБИТ` = (SELECT `Ид` FROM `Абитуриент%ПЕРС` WHERE `Код` = "1"), `Регномер` = "1", `Реквизиты` = "1235453", `Дата подачи` = "12.02.24", `Ид\ДОКА^СЕК` = (SELECT `Ид\СЕК^СОТ` FROM `Секретарь:СОТ` WHERE `Ид\СЕК^СОТ` = "1"), `Ид\ДОКА^КАФ` = (SELECT `Ид` FROM `Кафедра\ФАК` WHERE `Код` = "1"), `Ид_ВДОК\ДОКА^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="ПОД" AND `Код`="ИРТ");
SELECT "'Документы\АБИТ` Table Content:" FROM `Документы\АБИТ` WHERE 1=0;
SELECT* FROM `Документы\АБИТ`;
DROP TABLE IF EXISTS `Направление абитуриента:ДОКА*НАП`;
CREATE TABLE `Направление абитуриента:ДОКА*НАП`
( `ВК1\НАБ^ДОКА` INT NOT NULL
REFERENCES `Документы\АБИТ` (`Ид`)
, `Код\НАБ^НАП` INT NOT NULL
REFERENCES `Направление` (`Ид`)
, CONSTRAINT `ПК\НАБ` PRIMARY KEY (`ВК1\НАБ^ДОКА`, `Код\НАБ^НАП`)
);
INSERT INTO `Направление абитуриента:ДОКА*НАП` SET `ВК1\НАБ^ДОКА` = (SELECT `Ид` FROM `Документы\АБИТ` WHERE `Регномер` = "1"), `Код\НАБ^НАП` = (SELECT `Ид` FROM `Направление` WHERE `Код` = "1");
SELECT "'Направление абитуриента:ДОКА*НАП` Table Content:" FROM `Направление абитуриента:ДОКА*НАП` WHERE 1=0;
SELECT* FROM `Направление абитуриента:ДОКА*НАП`;
DROP TABLE IF EXISTS `Заседание апелляционной комиссии`;
CREATE TABLE `Заседание апелляционной комиссии`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер` INT NOT NULL
, `Дата` VARCHAR (50) NOT NULL
);
INSERT INTO `Заседание апелляционной комиссии` VALUES
( NULL, "1", "1"),
( NULL, "2", "2");
SELECT "'Заседание апелляционной комиссии` Table Content:" FROM `Заседание апелляционной комиссии` WHERE 1=0;
SELECT* FROM `Заседание апелляционной комиссии`;
DROP TABLE IF EXISTS `Член комиссии на заседании:ЗАСК*ЧК`;
CREATE TABLE `Член комиссии на заседании:ЗАСК*ЧК`
( `Ид\ЧКОМ^ЗАСК` INT NOT NULL
REFERENCES `Заседание апелляционной комиссии` (`Ид`)
, `Ид\ЧКОМ^ЧК` INT NOT NULL
REFERENCES `Член комиссии:СОТ` (`Ид\ЧК^СОТ`)
, `Роль члена комиссии` VARCHAR (50) NOT NULL
, CONSTRAINT `ПК\ЧКОМ` PRIMARY KEY (`Ид\ЧКОМ^ЗАСК`, `Ид\ЧКОМ^ЧК`)
);
INSERT INTO `Член комиссии на заседании:ЗАСК*ЧК` SET `Ид\ЧКОМ^ЗАСК` = (SELECT `Ид` FROM `Заседание апелляционной комиссии` WHERE `Регномер` = "1"), `Ид\ЧКОМ^ЧК` = (SELECT `Ид\ЧК^СОТ` FROM `Член комиссии:СОТ` WHERE `Ид\ЧК^СОТ` = "1"), `Роль члена комиссии` = "12";
SELECT "'Член комиссии на заседании:ЗАСК*ЧК` Table Content:" FROM `Член комиссии на заседании:ЗАСК*ЧК` WHERE 1=0;
SELECT* FROM `Член комиссии на заседании:ЗАСК*ЧК`;
DROP TABLE IF EXISTS `Абитуриент на заседании`;
CREATE TABLE `Абитуриент на заседании`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер` INT NOT NULL UNIQUE
, `Содержание` VARCHAR (50) NOT NULL
, `Решение` VARCHAR (50) NOT NULL
, `Ид\АНЗ^ЗАСК` INT NOT NULL
REFERENCES `Заседание апелляционной комиссии` (`Ид`)
, `Ид\АНЗ^АБИТ` INT NOT NULL
REFERENCES `Абитуриент%ПЕРС` (`Ид`)
, `Ид_ВПР\АНЗ^СПР` INT NOT NULL
REFERENCES `Справка+` (`Ид`)
);
INSERT INTO `Абитуриент на заседании` SET `Ид` = NULL, `Регномер` = "1", `Содержание` = "содержание 1", `Решение` = "положительное", `Ид\АНЗ^ЗАСК` = (SELECT `Ид` FROM `Заседание апелляционной комиссии` WHERE `Регномер` = "1"), `Ид\АНЗ^АБИТ` = (SELECT `Ид` FROM `Абитуриент%ПЕРС` WHERE `Код` = "1"), `Ид_ВПР\АНЗ^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Слк`="ПОД" AND `Код`="ИРТ");
SELECT "'Абитуриент на заседании` Table Content:" FROM `Абитуриент на заседании` WHERE 1=0;
SELECT* FROM `Абитуриент на заседании`;
DROP VIEW IF EXISTS `вирт_Приказ о зачислени`;
CREATE VIEW `вирт_Приказ о зачислени` AS
SELECT
`ПРИК`.`Регномер` AS `Регномер приказа`,
`ПРИК`.`Дата` AS `Дата приказа`,
`СОТ`.`Код` AS `Код руководителя`,
`СОТ`.`ФИО` AS `ФИО руководителя`,
`СПРД`.`Код` AS `Код должности руководителя`,
`СПРД`.`Название` AS `Название должности руководителя`,
`ПРИК`.`Ид` AS `Ид\Приказ`
FROM `Приказ о зачислении` AS `ПРИК`
LEFT JOIN `Руководитель:СОТ` AS `РУК` ON `ПРИК`.`Ид\ПРИК^РУК` = `РУК`.`Ид\РУК^СОТ`
LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ` ON `РУК`.`Ид\РУК^СОТ` = `СОТ`.`Ид`
LEFT JOIN `Справка+` AS `СПРД` ON `СОТ`.`Ид_ДОЛ\СОТ^СПР` = `СПРД`.`Ид`
;
SELECT * FROM `вирт_Приказ о зачислени`;
DROP PROCEDURE IF EXISTS `проц_Категория абитуриента`;
CREATE PROCEDURE `проц_Категория абитуриента`
(IN `@Ид\Приказ` INT)
SELECT
`СПР`.`Код` AS `Код категории абитуриента`,
`СПР`.`Название` AS `Название категории абитуриента`
FROM `Категория абитуриента в приказе:ПРИК*КАТ` AS `КАП`
LEFT JOIN `Справка+` AS `СПР` ON `КАП`.`Ид_КАТ\КАП^СПР` = `СПР`.`Ид`
WHERE `КАП`.`Ид\КАП^ПРИК` = `@Ид\Приказ`
;
CALL `проц_Категория абитуриента` (1);
DROP VIEW IF EXISTS `вирт_Приказ%Категория`;
CREATE VIEW `вирт_Приказ%Категория` AS
SELECT
`ПРИК`.`Регномер` AS `Регномер приказа`,
`ПРИК`.`Дата` AS `Дата приказа`,
`СОТ`.`Код` AS `Код руководителя`,
`СОТ`.`ФИО` AS `ФИО руководителя`,
`СПРД`.`Код` AS `Код должности руководителя`,
`СПРД`.`Название` AS `Название должности руководителя`,
`СПР`.`Код` AS `Код категории абитуриента`,
`СПР`.`Название` AS `Название категории абитуриента`
FROM `Категория абитуриента в приказе:ПРИК*КАТ` AS `КАП`
LEFT JOIN `Справка+` AS `СПР` ON `КАП`.`Ид_КАТ\КАП^СПР` = `СПР`.`Ид`
LEFT JOIN `Приказ о зачислении` AS `ПРИК` ON `КАП`.`Ид\КАП^ПРИК` = `ПРИК`.`Ид`
LEFT JOIN `Руководитель:СОТ` AS `РУК` ON `ПРИК`.`Ид\ПРИК^РУК` = `РУК`.`Ид\РУК^СОТ`
LEFT JOIN `Сотрудник%ПЕРС` AS `СОТ` ON `РУК`.`Ид\РУК^СОТ` = `СОТ`.`Ид`
LEFT JOIN `Справка+` AS `СПРД` ON `СОТ`.`Ид_ДОЛ\СОТ^СПР` = `СПРД`.`Ид`
;
SELECT * FROM `вирт_Приказ%Категория`;
DROP VIEW IF EXISTS `вирт_Заседание_Члены_комиссии`;
CREATE VIEW `вирт_Заседание_Члены_комиссии` AS
SELECT
`ЗАСК`.`Регномер` AS `Регномер заседания`,
`ЗАСК`.`Дата` AS `Дата заседания`,
COUNT(*) AS `Число членов комиссии на заседании`
FROM `Член комиссии на заседании:ЗАСК*ЧК` AS `ЧКОМ`
LEFT JOIN `Заседание апелляционной комиссии` AS `ЗАСК` ON `ЧКОМ`.`Ид\ЧКОМ^ЗАСК` = `ЗАСК`.`Ид`
GROUP BY `ЧКОМ`.`Ид\ЧКОМ^ЗАСК`
;
SELECT * FROM `вирт_Заседание_Члены_комиссии`;