DROP TABLE IF EXISTS `Справка+`;
CREATE TABLE `Справка+`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` CHAR (20) NOT NULL
, `Название` VARCHAR (50) NOT NULL
, `Ид_родитель\СПР^СПР` INT NULL
REFERENCES `Справка+` (`Ид`)
, CONSTRAINT `УН\СПР`
UNIQUE (`Код`)
);
INSERT INTO `Справка+` VALUES
(NULL, "ВТЕ", "вид темы", NULL),
(NULL, "ДОЛ", "должность", NULL)
;
SELECT "`Справка+` Table Content:" FROM `Справка+` WHERE 1=0;
SELECT * FROM `Справка+`;
DROP TABLE IF EXISTS `Помещение`;
CREATE TABLE `Помещение`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` CHAR (10) NOT NULL UNIQUE
, `Адрес` CHAR (20) NOT NULL
);
INSERT INTO `Помещение` SET
`Ид` = NULL,`Код` = "1",`Адрес` = "Ул. Ленина 42";
SELECT "`Помещение` Table Content:" FROM `Помещение` WHERE 1=0;
SELECT * FROM `Помещение`;
DROP TABLE IF EXISTS `Секретарь%ПЕРС`;
CREATE TABLE `Секретарь%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` CHAR (10) NOT NULL UNIQUE
, `ФИО` CHAR (20) NOT NULL
, `Ид_ДОЛ\СЕК^СПР` CHAR (20) NULL
);
INSERT INTO `Секретарь%ПЕРС` SET
`Ид` = NULL,`Код` = "001", `ФИО` = "Иванов И.И.",
`Ид_ДОЛ\СЕК^СПР` = (SELECT `Ид` FROM `Справка+` WHERE `Код` = "ДОЛ");
SELECT "`Секретарь%ПЕРС` Table Content:" FROM `Секретарь%ПЕРС` WHERE 1=0;
SELECT * FROM `Секретарь%ПЕРС`;
DROP TABLE IF EXISTS `Заседание`;
CREATE TABLE `Заседание`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Регномер` CHAR (10) NOT NULL UNIQUE
, `Дата заседания` CHAR (20) NOT NULL
, `Ид\ЗАС^ПОМ` CHAR (20) NULL
, `Ид\ЗАС^СЕК` CHAR (20) NULL
);
INSERT INTO `Заседание` SET
`Ид` = NULL,`Регномер` = "1221", `Дата заседания` = "12.11.2013", `Ид\ЗАС^ПОМ` = (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
, `Регномер` CHAR (10) NOT NULL UNIQUE
, `Нпп` CHAR (20) NOT NULL
, `Название` CHAR (20) NOT NULL
, `Решение` CHAR (20) NOT NULL
, `Ид\ТЗА^ЗАС` CHAR (20) NULL
, `Ид_ВТЕ\ТЗА^СПР` CHAR (20) NULL
);
INSERT INTO `Тема заседания` SET
`Ид` = NULL,`Регномер` = "3", `Нпп` = "ТЗ-1", `Название` = "Заседание-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
, `Код` CHAR (10) NOT NULL UNIQUE
, `ФИО` CHAR (20) NOT NULL
, `Роль` CHAR (20) NULL
, `Ид\ДПТ^ТЗА` CHAR (20) NULL
, `Ид_ДОЛ\ДПТ^СПР` CHAR (20) NULL
);
INSERT INTO `Докладчик по теме%ПЕРС` SET
`Ид` = NULL,`Код` = "001", `ФИО` = "Петров П.П.", `Роль` = "Докладчик-1",
`Ид\ДПТ^ТЗА` = (SELECT `Ид` FROM `Тема заседания` WHERE `Ид` = "1"), `Ид_ДОЛ\ДПТ^СПР` = (SELECT `Ид` FROM `Справка+`
WHERE `Ид` = "2");
SELECT "`Докладчик по теме%ПЕРС` Table Content:" FROM `Докладчик по теме%ПЕРС` WHERE 1=0;
SELECT * FROM `Докладчик по теме%ПЕРС`;
DROP TABLE IF EXISTS `Приглашение`;
CREATE TABLE `Приглашение`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Дата отправки` CHAR (10) NOT NULL UNIQUE
, `Дата ответа` CHAR (20) NULL
, `Содержание ответа` CHAR (20) NULL
);
INSERT INTO `Приглашение` SET
`Ид` = NULL,`Дата отправки` = "01.01.2013", `Дата ответа` = "10.01.2013", `Содержание ответа` = "Принято";
SELECT "`Приглашение` Table Content:" FROM `Приглашение` WHERE 1=0;
SELECT * FROM `Приглашение`;
DROP TABLE IF EXISTS `Приглашенный на заседание%ПЕРС`;
CREATE TABLE `Приглашенный на заседание%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` CHAR (10) NOT NULL UNIQUE
, `ФИО` CHAR (20) NOT NULL
, `Ид\ПНЗ^ЗАС` CHAR (20) NULL
, `Ид\ПНЗ^ПРИ` CHAR (20) NULL
, `Ид_ДОЛ\ПНЗ^СПР` CHAR (20) NULL
);
INSERT INTO `Приглашенный на заседание%ПЕРС` SET
`Ид` = NULL,`Код` = "002", `ФИО` = "Марков М.М.",
`Ид\ПНЗ^ЗАС` = (SELECT `Ид` FROM `Заседание` WHERE `Ид` = "1"), `Ид\ПНЗ^ПРИ` = (SELECT `Ид` FROM `Приглашение` WHERE `Ид` = "1"),
`Ид_ДОЛ\ПНЗ^СПР` = (SELECT `Ид` FROM `Справка+`WHERE `Ид` = "2");
SELECT "`Приглашенный на заседание%ПЕРС` Table Content:" FROM `Приглашенный на заседание%ПЕРС` WHERE 1=0;
SELECT * FROM `Приглашенный на заседание%ПЕРС`;
DROP TABLE IF EXISTS `Спрашивающая персона%ПЕРС`;
CREATE TABLE `Спрашивающая персона%ПЕРС`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` CHAR (10) NOT NULL UNIQUE
, `ФИО` CHAR (20) NOT NULL
, `Ид_ДОЛ\СПП^СПР` CHAR (20) NULL
);
INSERT INTO `Спрашивающая персона%ПЕРС` SET
`Ид` = NULL,`Код` = "003", `ФИО` = "Смирнов С.С.",
`Ид_ДОЛ\СПП^СПР` = (SELECT `Ид` FROM `Справка+`WHERE `Ид` = "2");
SELECT "`Спрашивающая персона%ПЕРС` Table Content:" FROM `Спрашивающая персона%ПЕРС` WHERE 1=0;
SELECT * FROM `Спрашивающая персона%ПЕРС`;
DROP TABLE IF EXISTS `Вопросы докладчику`;
CREATE TABLE `Вопросы докладчику`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Нпп` CHAR (10) NOT NULL UNIQUE
, `Содержание вопроса` CHAR (20) NOT NULL
, `Содержание ответа` CHAR (20) NOT NULL
, `Ид\ВОД^ДПТ` CHAR (20) NULL
, `Ид\ВОД^СПП` CHAR (20) NULL
);
INSERT INTO `Вопросы докладчику` SET
`Ид` = NULL,`Нпп` = "ВОП-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
, `Код` CHAR (10) NOT NULL UNIQUE
, `ФИО` CHAR (20) NOT NULL
, `Ид_ДОЛ\ВЫП^СПР` CHAR (20) NULL
);
INSERT INTO `Выступающая персона%ПЕРС` SET
`Ид` = NULL,`Код` = "004", `ФИО` = "Сергеев С.С.",
`Ид_ДОЛ\ВЫП^СПР` = (SELECT `Ид` FROM `Справка+`WHERE `Ид` = "2");
SELECT "`Выступающая персона%ПЕРС` Table Content:" FROM `Выступающая персона%ПЕРС` WHERE 1=0;
SELECT * FROM `Выступающая персона%ПЕРС`;
DROP TABLE IF EXISTS `Выступление по теме`;
CREATE TABLE `Выступление по теме`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Нпп` CHAR (10) NOT NULL UNIQUE
, `Содержание` CHAR (50) NOT NULL
, `Ид\ВПП^ВЫП` CHAR (20) NULL
, `Ид\ВПП^ТЗА` CHAR (20) NULL
);
INSERT INTO `Выступление по теме` SET
`Ид` = NULL,`Нпп` = "ВЫСТ-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
, `Дата объявления` CHAR (10) NOT NULL UNIQUE
, `Количество мест` CHAR (50) NOT NULL
);
INSERT INTO `Конкурс` SET
`Ид` = NULL,`Дата объявления` = "01.02.2013", `Количество мест` = "5";
SELECT "`Конкурс` Table Content:" FROM `Конкурс` WHERE 1=0;
SELECT * FROM `Конкурс`;
DROP TABLE IF EXISTS `Конкурсная должность на заседании`;
CREATE TABLE `Конкурсная должность на заседании`
( `Ид` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
, `Код` CHAR (10) NOT NULL UNIQUE
, `Название` CHAR (20) NOT NULL
, `Решение по избранию` CHAR (20) NOT NULL
, `Ид\КДЗ^КОН` CHAR (20) NULL
, `Ид\КДЗ^ЗАС` CHAR (20) NULL
);
INSERT INTO `Конкурсная должность на заседании` SET
`Ид` = NULL,`Код` = "КДЗ-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
, `Код` CHAR (10) NOT NULL UNIQUE
, `ФИО` CHAR (20) NOT NULL
, `Результат голосования по претенденту` CHAR (20) NOT NULL
, `Ид\ПНД^КДЗ` CHAR (20) NULL
, `Ид_ДОЛ\ПНД^СПР` CHAR (20) NULL
);
INSERT INTO `Претендент на должность%ПЕРС` SET
`Ид` = NULL,`Код` = "ПРЕТ-1", `ФИО` = "Марков М.М.",
`Результат голосования по претенденту` = "Принять",
`Ид\ПНД^КДЗ` = (SELECT `Ид` FROM `Конкурсная должность на заседании` WHERE `Ид` = "1"),
`Ид_ДОЛ\ПНД^СПР` = (SELECT `Ид` FROM `Справка+`WHERE `Ид` = "2");
SELECT "`Претендент на должность%ПЕРС` Table Content:" FROM `Претендент на должность%ПЕРС` WHERE 1=0;
SELECT * FROM `Претендент на должность%ПЕРС`;
DROP VIEW IF EXISTS `вирт_Заседание`;
CREATE VIEW `вирт_Заседание` AS
SELECT
`ЗАС`.`Регномер` AS `Регномер заседания`,
`ЗАС`.`Дата заседания` AS `Дата проведения заседания`,
`ПОМ`.`Код` AS `Код помещения`,
`ПОМ`.`Адрес` AS `Адрес помещения`,
`СЕК`.`Код` AS `Код секретаря`,
`СЕК`.`ФИО` AS `ФИО секретаря`
FROM `Заседание` AS `ЗАС`
INNER JOIN `Помещение` AS `ПОМ`
ON `ЗАС`.`Ид\ЗАС^ПОМ` = `ПОМ`.`Ид`
INNER JOIN `Секретарь%ПЕРС` AS `СЕК`
ON `ЗАС`.`Ид\ЗАС^СЕК` = `СЕК`.`Ид`
;
SELECT * FROM `вирт_Заседание`;
DROP PROCEDURE IF EXISTS `проц_Тема заседания`;
CREATE PROCEDURE `проц_Тема заседания`
(IN `Вх:Ид\Заседание` INT)
SELECT
`ТЗА`.`Нпп` AS `Нпп темы`,
`ТЗА`.`Название` AS `Название темы`,
`СПР1`.`Код` AS `Код вида темы`,
`СПР1`.`Название` AS `Название вида темы`
FROM `Тема заседания` AS `ТЗА`
INNER JOIN `Справка+` AS `СПР1`
ON `ТЗА`.`Ид_ВТЕ\ТЗА^СПР` = `СПР1`.`Ид`
WHERE `ТЗА`.`Ид\ТЗА^ЗАС` = `Вх:Ид\Заседание`
;
CALL `проц_Тема заседания` (1);
DROP PROCEDURE IF EXISTS `проц_Планируемый докладчик по теме`;
CREATE PROCEDURE `проц_Планируемый докладчик по теме`
(IN `Вх:Ид\Тема заседания` INT)
SELECT
`ДПТ`.`Код` AS `Код докладчика`,
`ДПТ`.`ФИО` AS `ФИО докладчика`,
`ДПТ`.`Роль` AS `Роль докладчика`
FROM `Докладчик по теме%ПЕРС` AS `ДПТ`
WHERE `ДПТ`.`Ид\ДПТ^ТЗА` = `Вх:Ид\Тема заседания`
;
CALL `проц_Планируемый докладчик по теме` (1);