Skip to content
Snippets Groups Projects
Commit 609def46 authored by PavelBegunkov's avatar PavelBegunkov
Browse files

fix

parent cbcbf05d
Branches
Tags
No related merge requests found
......@@ -20,6 +20,28 @@ SET time_zone = "+00:00";
-- База данных: `Sample2`
--
--
-- Дамп данных таблицы `job_positions`
--
INSERT INTO `job_positions` (`ID`, `Name`) VALUES
(1, 'Аспирант'),
(2, 'Ассистент'),
(3, 'Ведущий научный сотрудник'),
(4, 'Главный научный сотрудник'),
(5, 'Докторант'),
(6, 'Доцент'),
(7, 'Младший научный сотрудник'),
(8, 'Научный сотрудник'),
(9, 'Преподаватель'),
(10, 'Профессор'),
(11, 'Старший преподаватель'),
(12, 'Стажер'),
(13, 'Старший научный сотрудник'),
(14, 'Доцент');
--
-- Дамп данных таблицы `accounts`
--
......@@ -50,6 +72,17 @@ INSERT INTO `accounts` (`ID`, `Login`, `Password`, `EMail`, `UserRoleID`, `Activ
(23, 'teacher7', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'teacher7@mail.ru', 2, NULL, 1, NULL),
(24, 'teacher8', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'teacher8@mail.ru', 2, NULL, 1, NULL);
--
-- Дамп данных таблицы `subjects`
--
INSERT INTO `subjects` (`ID`, `Name`, `Abbr`) VALUES
(1, 'Математический анализ', 'Матан'),
(2, 'Дифференциальные уравнения', 'Диф. ур-я'),
(3, 'Иностранный язык', 'Ин.яз.'),
(4, 'Операционные системы', 'ОС');
--
-- Дамп данных таблицы `faculties`
--
......@@ -58,6 +91,7 @@ INSERT INTO `faculties` (`ID`, `Name`, `Abbr`) VALUES
(1, 'Институт математики, механики и компьютерных наук', 'Мехмат'),
(2, 'Юридический факультет', 'Юрфак');
--
-- Дамп данных таблицы `departments`
--
......@@ -66,29 +100,9 @@ INSERT INTO `departments` (`ID`, `Name`, `FacultyID`) VALUES
(1, 'Кафедра математического анализа', 1),
(2, 'Кафедра магического анализа', 1);
--
-- Дамп данных таблицы `subjects`
--
INSERT INTO `subjects` (`ID`, `Name`, `Abbr`) VALUES
(1, 'Математический анализ', 'Матан'),
(2, 'Дифференциальные уравнения', 'Диф. ур-я'),
(3, 'Иностранный язык', 'Ин.яз.'),
(4, 'Операционные системы', 'ОС');
--
-- Дамп данных таблицы `teachers`
--
INSERT INTO `teachers` (`ID`, `LastName`, `FirstName`, `SecondName`, `JobPositionID`, `DepartmentID`, `AccountID`) VALUES
(1, 'teacher1', 'First', 'Second', 1, 1, 17),
(2, 'teacher2', 'First', 'Second', 2, 1, 18),
(3, 'teacher3', 'First', 'Second', 3, 2, 19),
(4, 'teacher4', 'First', 'Second', 3, 2, 20),
(5, 'teacher5', 'First', 'Second', 3, 2, 21),
(6, 'teacher6', 'First', 'Second', 13, 1, 22),
(7, 'teacher7', 'First', 'Second', 13, 1, 23),
(8, 'teacher8', 'First', 'Second', 8, 2, 24);
--
-- Дамп данных таблицы `semesters`
......@@ -117,38 +131,6 @@ INSERT INTO `study_groups` (`ID`, `Grade`, `GroupNum`, `SpecializationID`, `Name
(3, 1, 3, 2, NULL),
(4, 2, 1, 1, NULL);
--
-- Дамп данных таблицы `disciplines`
--
INSERT INTO `disciplines` (`ID`, `Grade`, `SubjectID`, `AuthorID`, `ExamType`, `SemesterID`, `PracticeCount`, `LectionCount`, `DepartmentID`) VALUES
(1, 1, 4, 1, 'exam', 1, 20, 20, 1),
(2, 1, 3, 3, 'exam', 1, 20, 15, 2),
(3, 1, 3, 4, 'exam', 1, 20, 15, 2),
(4, 1, 3, 5, 'exam', 1, 20, 15, 2),
(5, 1, 1, 6, 'credit', 1, 15, 15, 1),
(6, 1, 2, 8, 'credit', 1, 10, 10, 2),
(7, 1, 2, 1, 'credit', 1, 10, 10, 1);
--
-- Дамп данных таблицы `disciplines_groups`
--
INSERT INTO `disciplines_groups` (`ID`, `DisciplineID`, `StudyGroupID`) VALUES
(1, 1, 3),
(2, 2, 1),
(3, 2, 2),
(4, 2, 3),
(5, 3, 1),
(6, 3, 2),
(7, 3, 3),
(8, 4, 1),
(9, 4, 2),
(10, 4, 3),
(11, 5, 1),
(12, 5, 2),
(13, 6, 2);
--
-- Дамп данных таблицы `students`
--
......@@ -171,83 +153,39 @@ INSERT INTO `students` (`ID`, `StudyGroupID`, `AccountID`, `LastName`, `FirstNam
(15, 3, 15, 'student5_c1g3', 'First', 'Second'),
(16, 4, 16, 'student1_c2g1', 'First', 'Second');
--
-- Дамп данных таблицы `disciplines_students`
-- Дамп данных таблицы `teachers`
--
INSERT INTO `disciplines_students` (`ID`, `DisciplineID`, `StudentID`, `Type`) VALUES
(1, 5, 1, 'detach'),
(2, 5, 6, 'detach'),
(3, 6, 6, 'detach'),
(4, 6, 7, 'detach'),
(5, 1, 15, 'detach'),
(6, 2, 3, 'detach'),
(7, 2, 4, 'detach'),
(8, 2, 4, 'detach'),
(9, 2, 3, 'detach'),
(10, 2, 4, 'detach'),
(11, 2, 5, 'detach'),
(12, 2, 8, 'detach'),
(13, 2, 9, 'detach'),
(14, 2, 9, 'detach'),
(15, 2, 8, 'detach'),
(16, 2, 9, 'detach'),
(17, 2, 10, 'detach'),
(18, 2, 12, 'detach'),
(19, 2, 13, 'detach'),
(20, 2, 14, 'detach'),
(21, 2, 14, 'detach'),
(22, 2, 12, 'detach'),
(23, 2, 13, 'detach'),
(24, 2, 14, 'detach'),
(25, 2, 15, 'detach'),
(26, 3, 1, 'detach'),
(27, 3, 2, 'detach'),
(28, 3, 5, 'detach'),
(29, 3, 11, 'detach'),
(30, 3, 12, 'detach'),
(31, 3, 12, 'detach'),
(32, 3, 1, 'detach'),
(33, 3, 2, 'detach'),
(34, 3, 5, 'detach'),
(35, 3, 11, 'detach'),
(36, 3, 14, 'detach'),
(37, 3, 15, 'detach'),
(38, 3, 6, 'detach'),
(39, 3, 7, 'detach'),
(40, 3, 9, 'detach'),
(41, 3, 9, 'detach'),
(42, 3, 6, 'detach'),
(43, 3, 7, 'detach'),
(44, 3, 9, 'detach'),
(45, 3, 10, 'detach'),
(46, 4, 1, 'detach'),
(47, 4, 2, 'detach'),
(48, 4, 3, 'detach'),
(49, 4, 4, 'detach'),
(50, 4, 7, 'detach'),
(51, 4, 8, 'detach'),
(52, 4, 9, 'detach'),
(53, 4, 11, 'detach'),
(54, 4, 12, 'detach'),
(55, 4, 12, 'detach'),
(56, 4, 1, 'detach'),
(57, 4, 2, 'detach'),
(58, 4, 3, 'detach'),
(59, 4, 4, 'detach'),
(60, 4, 7, 'detach'),
(61, 4, 8, 'detach'),
(62, 4, 9, 'detach'),
(63, 4, 11, 'detach'),
(64, 4, 12, 'detach'),
(65, 4, 13, 'detach'),
(66, 1, 15, 'detach'),
(67, 6, 11, 'attach'),
(68, 1, 6, 'attach'),
(69, 1, 6, 'attach'),
(70, 6, 11, 'attach'),
(71, 1, 6, 'attach'),
(72, 1, 16, 'attach');
INSERT INTO `teachers` (`ID`, `LastName`, `FirstName`, `SecondName`, `JobPositionID`, `DepartmentID`, `AccountID`) VALUES
(1, 'teacher1', 'First', 'Second', 1, 1, 17),
(2, 'teacher2', 'First', 'Second', 2, 1, 18),
(3, 'teacher3', 'First', 'Second', 3, 2, 19),
(4, 'teacher4', 'First', 'Second', 3, 2, 20),
(5, 'teacher5', 'First', 'Second', 3, 2, 21),
(6, 'teacher6', 'First', 'Second', 13, 1, 22),
(7, 'teacher7', 'First', 'Second', 13, 1, 23),
(8, 'teacher8', 'First', 'Second', 8, 2, 24);
--
-- Дамп данных таблицы `disciplines`
--
INSERT INTO `disciplines` (`ID`, `Grade`, `SubjectID`, `AuthorID`, `ExamType`, `SemesterID`, `PracticeCount`, `LectionCount`, `FacultyID`) VALUES
(1, 1, 4, 1, 'exam', 1, 20, 20, 1),
(2, 1, 3, 3, 'exam', 1, 20, 15, 1),
(3, 1, 3, 4, 'exam', 1, 20, 15, 1),
(4, 1, 3, 5, 'exam', 1, 20, 15, 1),
(5, 1, 1, 6, 'credit', 1, 15, 15, 1),
(6, 1, 2, 8, 'credit', 1, 10, 10, 1),
(7, 1, 2, 1, 'credit', 1, 10, 10, 1);
--
-- Дамп данных таблицы `disciplines_teachers`
......@@ -266,24 +204,26 @@ INSERT INTO `disciplines_teachers` (`ID`, `DisciplineID`, `TeacherID`) VALUES
(10, 7, 1);
--
-- Дамп данных таблицы `job_positions`
-- Дамп данных таблицы `disciplines_groups`
--
INSERT INTO `job_positions` (`ID`, `Name`) VALUES
(1, 'Аспирант'),
(2, 'Ассистент'),
(3, 'Ведущий научный сотрудник'),
(4, 'Главный научный сотрудник'),
(5, 'Докторант'),
(6, 'Доцент'),
(7, 'Младший научный сотрудник'),
(8, 'Научный сотрудник'),
(9, 'Преподаватель'),
(10, 'Профессор'),
(11, 'Старший преподаватель'),
(12, 'Стажер'),
(13, 'Старший научный сотрудник'),
(14, 'Доцент');
INSERT INTO `disciplines_groups` (`ID`, `DisciplineID`, `StudyGroupID`) VALUES
(1, 1, 3),
(2, 2, 1),
(3, 2, 2),
(4, 2, 3),
(5, 3, 1),
(6, 3, 2),
(7, 3, 3),
(8, 4, 1),
(9, 4, 2),
(10, 4, 3),
(11, 5, 1),
(12, 5, 2),
(13, 6, 2);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
......
......@@ -296,7 +296,8 @@ BEGIN
study_groups.GroupNum AS 'GroupNum'
FROM `students`
INNER JOIN `study_groups` ON students.StudyGroupID = study_groups.ID
WHERE students.StudyGroupID = StudyGroupID;
WHERE students.StudyGroupID = StudyGroupID
ORDER BY students.LastName ASC, students.FirstName ASC, students.SecondName ASC;
END //
......@@ -317,7 +318,8 @@ BEGIN
FROM `students`
INNER JOIN `study_groups` ON study_groups.ID = students.StudyGroupID
INNER JOIN `specializations` ON study_groups.SpecializationID = specializations.ID
WHERE specializations.FacultyID = FacultyID;
WHERE specializations.FacultyID = FacultyID
ORDER BY students.LastName ASC, students.FirstName ASC, students.SecondName ASC;
END //
......@@ -339,7 +341,8 @@ BEGIN
FROM `teachers`
INNER JOIN `departments` ON departments.ID = teachers.DepartmentID
INNER JOIN `job_positions` ON job_positions.ID = teachers.JobPositionID
WHERE departments.FacultyID = FacultyID;
WHERE departments.FacultyID = FacultyID
ORDER BY teachers.LastName ASC, teachers.FirstName ASC, teachers.SecondName ASC;
END //
......@@ -360,7 +363,8 @@ BEGIN
FROM `teachers`
INNER JOIN `departments` ON departments.ID = teachers.DepartmentID
INNER JOIN `job_positions` ON job_positions.ID = teachers.JobPositionID
WHERE departments.ID = DepartmentID;
WHERE departments.ID = DepartmentID
ORDER BY teachers.LastName ASC, teachers.FirstName ASC, teachers.SecondName ASC;
END //
......@@ -371,7 +375,8 @@ CREATE PROCEDURE `GetJobPositions` ( )
BEGIN
SELECT job_positions.ID,
job_positions.Name
FROM `job_positions`;
FROM `job_positions`
ORDER BY job_positions.Name;
END //
......@@ -1001,6 +1006,24 @@ END //
-- -------------------------------------------------------------------------------------------
DROP FUNCTION IF EXISTS InternalCheckRate//
CREATE FUNCTION `InternalCheckRate`( `DiscID` INT
) RETURNS int(11)
NO SQL
BEGIN
DECLARE checker INT;
SELECT rating_table.ID
INTO checker
FROM `rating_table`
INNER JOIN `submodules` ON submodules.ID = rating_table.SubModuleID
INNER JOIN `modules` ON submodules.ModuleID = modules.ID AND
modules.DisciplineID = DiscID
LIMIT 1;
RETURN (checker IS NOT NULL AND checker > 0);
END //
DROP PROCEDURE IF EXISTS GetDisciplineInfoByID//
CREATE PROCEDURE `GetDisciplineInfoByID`( IN `DiscID` INT )
NO SQL
......@@ -1015,12 +1038,15 @@ BEGIN
subjects.ID AS 'SubjectID',
subjects.Name AS 'SubjectName',
subjects.Abbr AS 'SubjectAbbr',
departments.ID AS 'DepID',
faculties.ID AS 'DepID',
departments.Name AS 'DepName',
departments.FacultyID AS 'FacultyID'
departments.FacultyID AS 'FacultyID',
InternalCheckRate(DiscID) AS 'isLocked'
FROM `disciplines`
INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID
INNER JOIN `departments` ON departments.ID = disciplines.DepartmentID
INNER JOIN `faculties` ON faculties.ID = disciplines.FacultyID
INNER JOIN `teachers` ON disciplines.AuthorID = teachers.ID
INNER JOIN `departments` ON departments.ID = teachers.DepartmentID
WHERE disciplines.ID = DiscID;
END //
......@@ -1036,11 +1062,11 @@ BEGIN
teachers.SecondName AS 'TeacherSecond',
job_positions.ID AS 'JobPositionID',
job_positions.Name AS 'JobPositionName',
departments.ID AS 'DepartmentID',
departments.Name AS 'DepartmentName',
departments.ID AS 'DepID',
departments.Name AS 'DepName',
faculties.ID AS 'FacultyID',
faculties.Name AS 'FacultyName',
faculties.Abbr AS 'FacultyAbbreviation'
faculties.Abbr AS 'FacultyAbbr'
FROM `disciplines_teachers`
INNER JOIN `teachers` ON teachers.ID = disciplines_teachers.TeacherID
INNER JOIN `departments` ON departments.ID = teachers.DepartmentID
......@@ -1462,7 +1488,8 @@ BEGIN
SELECT disciplines_teachers.ID
INTO checker
FROM `disciplines`
INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID = BindingTeacher
INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND
disciplines_teachers.TeacherID = BindingTeacher
WHERE disciplines.ID = DisciplineID
LIMIT 1;
IF checker > 0 THEN
......@@ -1513,7 +1540,7 @@ CREATE FUNCTION `AddDiscipline` ( `TeacherID` INT,
`ExamType` VARCHAR(30),
`LectionCount` INT,
`PracticeCount` INT,
`DepartmentID` INT
`FacultyID` INT
) RETURNS int(11)
NO SQL
BEGIN
......@@ -1524,10 +1551,10 @@ BEGIN
RETURN -1;
END IF;
SELECT departments.ID
SELECT faculties.ID
INTO checker
FROM `departments`
WHERE departments.ID = DepartmentID
FROM `faculties`
WHERE faculties.ID = FacultyID
LIMIT 1;
IF NOT (checker > 0) THEN
RETURN -1;
......@@ -1552,8 +1579,8 @@ BEGIN
disciplines.LectionCount,
disciplines.PracticeCount,
disciplines.SemesterID,
disciplines.DepartmentID )
VALUES ( TeacherID, Grade, SubjectID, ExamType, LectionCount, PracticeCount, semID, DepartmentID );
disciplines.FacultyID )
VALUES ( TeacherID, Grade, SubjectID, ExamType, LectionCount, PracticeCount, semID, FacultyID );
-- RETURN ( SELECT disciplines.ID
-- FROM `disciplines`
......@@ -1571,6 +1598,8 @@ BEGIN
disciplines_teachers.TeacherID )
VALUES ( checker, TeacherID );
SET semID = AddModuleExam(TeacherID, checker);
RETURN checker;
......@@ -1638,7 +1667,8 @@ BEGIN
SELECT disciplines_teachers.ID
INTO checker
FROM `disciplines_teachers`
WHERE disciplines_teachers.DisciplineID = DisciplineID AND disciplines_teachers.TeacherID = TeacherID
WHERE disciplines_teachers.DisciplineID = DisciplineID AND
disciplines_teachers.TeacherID = TeacherID
LIMIT 1;
IF NOT (checker > 0) THEN
RETURN -1;
......@@ -1666,7 +1696,8 @@ BEGIN
END IF;
DELETE FROM `disciplines_students`
WHERE disciplines_students.ID IN
WHERE disciplines_students.DisciplineID = DisciplineID AND
disciplines_students.StudentID IN
( SELECT students.ID
FROM `students`
WHERE students.StudyGroupID = StudyGroupID
......@@ -1691,24 +1722,26 @@ CREATE FUNCTION `BindStudent` ( `TeacherID` INT,
NO SQL
BEGIN
DECLARE checker, SG, temp INT;
SELECT students.StudyGroupID
INTO SG
FROM `students`
WHERE students.ID = StudentID
LIMIT 1;
SELECT disciplines_teachers.ID
INTO checker
FROM `disciplines_teachers`
WHERE disciplines_teachers.DisciplineID = DisciplineID AND disciplines_teachers.TeacherID = TeacherID
WHERE disciplines_teachers.DisciplineID = DisciplineID AND
disciplines_teachers.TeacherID = TeacherID
LIMIT 1;
IF NOT (checker > 0) THEN
RETURN -1;
END IF;
SELECT students.StudyGroupID
INTO SG
FROM `students`
WHERE students.ID = StudentID
LIMIT 1;
IF NOT (SG > 0) THEN
RETURN -1;
END IF;
SELECT disciplines_groups.ID
INTO temp
FROM `disciplines_groups`
......@@ -1747,7 +1780,8 @@ BEGIN
SELECT disciplines_teachers.ID
INTO checker
FROM `disciplines_teachers`
WHERE disciplines_teachers.DisciplineID = DisciplineID AND disciplines_teachers.TeacherID = TeacherID
WHERE disciplines_teachers.DisciplineID = DisciplineID AND
disciplines_teachers.TeacherID = TeacherID
LIMIT 1;
IF NOT (checker > 0) THEN
RETURN -1;
......@@ -1767,6 +1801,15 @@ BEGIN
WHERE disciplines_groups.DisciplineID = DisciplineID AND
disciplines_groups.StudyGroupID = StudyGroupID;
DELETE FROM `disciplines_students`
WHERE disciplines_students.DisciplineID = DisciplineID AND
disciplines_students.Type = 'detach' AND
disciplines_students.StudentID IN
( SELECT students.ID
FROM `students`
WHERE students.StudyGroupID = StudyGroupID
);
RETURN 0;
END //
......@@ -1787,7 +1830,9 @@ BEGIN
FROM `students`
WHERE students.ID = StudentID
LIMIT 1;
IF NOT (SG > 0) THEN
RETURN -1;
END IF;
SELECT disciplines_teachers.ID
INTO checker
......
......@@ -81,12 +81,12 @@ CREATE TABLE IF NOT EXISTS `disciplines` (
`SemesterID` int(11) NOT NULL,
`PracticeCount` int(11) NOT NULL DEFAULT '0',
`LectionCount` int(11) NOT NULL DEFAULT '0',
`DepartmentID` int(11) NOT NULL,
`FacultyID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `SubjectID` (`SubjectID`),
KEY `TeacherID` (`AuthorID`),
KEY `SemesterID` (`SemesterID`),
KEY `DepartmentID` (`DepartmentID`)
KEY `FacultyID` (`FacultyID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
......@@ -386,17 +386,22 @@ INSERT INTO `user_roles` (`ID`, `Type`, `RoleName`, `Mark`) VALUES
--
INSERT INTO `page_access` (`ID`, `Pagename`, `Bitmask`) VALUES
(NULL, 'common:index', 7),
(NULL, 'common:settings', 7),
(NULL, 'teacher:index', 6),
(NULL, 'teacher:settings', 6),
(NULL, 'teacher:map:create', 6),
(NULL, 'teacher:map:edit', 6),
(NULL, 'teacher:rating', 6),
(NULL, 'admin:common', 4),
(NULL, 'student:index', 1),
(NULL, 'student:settings', 1),
(NULL, 'student:subject', 1);
(1, 'common:index', 7),
(2, 'common:settings', 7),
(3, 'teacher:index', 6),
(4, 'teacher:settings', 6),
(5, 'teacher:map:create', 6),
(6, 'teacher:map:edit', 6),
(7, 'teacher:rating', 6),
(8, 'admin:common', 4),
(9, 'student:index', 1),
(10, 'student:settings', 1),
(11, 'student:subject', 1),
(12, 'teacher:map:discipline', 6),
(13, 'teacher:map:structure', 6),
(14, 'teacher:map:groups', 6),
(15, 'teacher:map:students', 6),
(16, 'teacher:map:teachers', 6);
--
-- Ограничения внешнего ключа сохраненных таблиц
......@@ -421,7 +426,7 @@ ALTER TABLE `disciplines`
ADD CONSTRAINT `disciplines_ibfk_2` FOREIGN KEY (`SubjectID`) REFERENCES `subjects` (`ID`),
ADD CONSTRAINT `disciplines_ibfk_4` FOREIGN KEY (`SemesterID`) REFERENCES `semesters` (`ID`),
ADD CONSTRAINT `disciplines_ibfk_5` FOREIGN KEY (`AuthorID`) REFERENCES `teachers` (`ID`),
ADD CONSTRAINT `disciplines_ibfk_6` FOREIGN KEY (`DepartmentID`) REFERENCES `departments` (`ID`);
ADD CONSTRAINT `disciplines_ibfk_6` FOREIGN KEY (`FacultyID`) REFERENCES `faculties` (`ID`);
--
-- Ограничения внешнего ключа таблицы `disciplines_groups`
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment