Newer
Older
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
-- --------------------------------------------------------
--
-- Структура таблицы `accounts`
--
CREATE TABLE IF NOT EXISTS `accounts` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Login` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
`Password` varchar(64) CHARACTER SET utf8 DEFAULT NULL,
`EMail` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`ActivationCode` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
UNIQUE KEY `Login` (`Login`),
UNIQUE KEY `EMail` (`EMail`),
KEY `UserRoleID` (`UserRoleID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- --------------------------------------------------------
--
-- Структура таблицы `departments`
--
CREATE TABLE IF NOT EXISTS `departments` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`FacultyID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
-- --------------------------------------------------------
--
-- Структура таблицы `compound_disciplines`
--
-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `compound_disciplines` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(200) CHARACTER SET utf8 NULL DEFAULT 'Курс по выбору',
`GradeID` int(11) NOT NULL,
`SpecializationID` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `disciplines` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`SubjectID` int(11) NOT NULL,
`AuthorID` int(11) NOT NULL,
`ExamType` enum('exam','credit', 'grading_credit') NOT NULL,
`SemesterID` int(11) NOT NULL,
`PracticeCount` int(11) NOT NULL DEFAULT '0',
-- Milestone semester time (or is session time)
`Milestone` INT(1) NOT NULL DEFAULT '0',
`MilestoneDate` DATE NULL DEFAULT NULL,
`Subtype` enum('scientific_coursework', 'disciplinary_coursework' ) NULL DEFAULT NULL,
`CompoundDiscID` INT(11) NULL DEFAULT NULL,
`MaxRate` INT(11) NOT NULL DEFAULT 0,
`CurRate` INT(11) NOT NULL DEFAULT 0,
KEY `SubjectID` (`SubjectID`),
KEY `TeacherID` (`AuthorID`),
KEY `FacultyID` (`FacultyID`),
KEY `CompoundDiscID` (`CompoundDiscID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `disciplines_groups`
--
CREATE TABLE IF NOT EXISTS `disciplines_groups` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`DisciplineID` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `disciplines_students`
--
CREATE TABLE IF NOT EXISTS `disciplines_students` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`DisciplineID` int(11) NOT NULL,
`StudentID` int(11) NOT NULL,
`Type` enum('attach','detach') NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `DisciplineID_2` (`DisciplineID`,`StudentID`),
KEY `DisciplineID` (`DisciplineID`),
KEY `StudentID` (`StudentID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `disciplines_teachers`
--
CREATE TABLE IF NOT EXISTS `disciplines_teachers` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`DisciplineID` int(11) NOT NULL,
`TeacherID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `DisciplineID` (`DisciplineID`),
KEY `AccountID` (`TeacherID`)
-- --------------------------------------------------------
--
-- Структура таблицы `faculties`
--
CREATE TABLE IF NOT EXISTS `faculties` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(100) CHARACTER SET utf8 NOT NULL,
`Abbr` varchar(20) CHARACTER SET utf8 NOT NULL,
-- --------------------------------------------------------
--
-- Структура таблицы `modules`
--
CREATE TABLE IF NOT EXISTS `modules` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`OrderNum` int(11) NOT NULL,
`DisciplineID` int(11) NOT NULL,
`Type` enum('regular','exam', 'bonus', 'extra') NOT NULL DEFAULT 'regular',
PRIMARY KEY (`ID`),
UNIQUE KEY `OrderNum` (`OrderNum`,`DisciplineID`),
KEY `DisciplineID` (`DisciplineID`)
-- --------------------------------------------------------
--
-- Структура таблицы `rating_table`
--
CREATE TABLE IF NOT EXISTS `rating_table` (
`StudentID` int(11) NOT NULL,
`TeacherID` int(11) NOT NULL,
`SubmoduleID` int(11) NOT NULL,
`Rate` int(11) NOT NULL,
`Date` date NOT NULL,
KEY `StudentID` (`StudentID`),
KEY `SubmoduleID` (`SubmoduleID`),
KEY `TeacherID` (`TeacherID`)
-- --------------------------------------------------------
--
-- Структура таблицы `requests`
--
CREATE TABLE IF NOT EXISTS `requests` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Title` varchar(50) CHARACTER SET utf8 NULL DEFAULT NULL,
`Description` text CHARACTER SET utf8 NULL DEFAULT NULL,
`Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Status` enum('opened','processed','closed') NOT NULL DEFAULT 'opened',
-- --------------------------------------------------------
--
-- Структура таблицы `semesters`
--
CREATE TABLE IF NOT EXISTS `semesters` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Year` int(11) NOT NULL,
`Num` int(11) NOT NULL,
PavelBegunkov
committed
UNIQUE KEY `Year` (`Year`,`Num`),
KEY `Year_2` (`Year`)
PavelBegunkov
committed
-- --------------------------------------------------------
--
-- Структура таблицы `years`
--
CREATE TABLE IF NOT EXISTS `years` (
`Num` int(11) NOT NULL,
PRIMARY KEY (`Num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `specializations`
--
CREATE TABLE IF NOT EXISTS `specializations` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Abbr` varchar(20) CHARACTER SET utf8 NULL,
`Code` varchar(12) CHARACTER SET utf8 NULL,
KEY `FacultyID` (`FacultyID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `students`
--
CREATE TABLE IF NOT EXISTS `students` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`AccountID` int(11) NOT NULL,
`LastName` varchar(30) CHARACTER SET utf8 NOT NULL,
`FirstName` varchar(30) CHARACTER SET utf8 NOT NULL,
`SecondName` varchar(30) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `AccountID` (`AccountID`)
-- --------------------------------------------------------
--
-- Структура таблицы `study_groups`
--
CREATE TABLE IF NOT EXISTS `study_groups` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
PavelBegunkov
committed
`FacultyID` int(11) NOT NULL,
PavelBegunkov
committed
UNIQUE KEY `FacultyGroup`(`FacultyID`,`GradeID`,`GroupNum`),
PavelBegunkov
committed
KEY `FacultyID` (`FacultyID`)
PavelBegunkov
committed
-- --------------------------------------------------------
--
-- Структура таблицы `groups_years`
--
CREATE TABLE IF NOT EXISTS `groups_years` (
`GroupID` int(11) NOT NULL,
`Year` int(11) NOT NULL,
`SpecializationID` int(11) NOT NULL,
`Name` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`Year`, `GroupID`),
KEY `GroupID` (`GroupID`),
KEY `Year` (`Year`),
KEY `SpecializationID` (`SpecializationID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `subjects`
--
CREATE TABLE IF NOT EXISTS `subjects` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(200) CHARACTER SET utf8 NOT NULL,
`Abbr` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
-- --------------------------------------------------------
--
-- Структура таблицы `subjects`
--
CREATE TABLE IF NOT EXISTS `subjects_faculties` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`SubjectID` int(11) NOT NULL,
`FacultyID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `SubjectID_2` (`SubjectID`,`FacultyID`),
KEY `SubjectID` (`SubjectID`),
KEY `FacultyID` (`FacultyID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `submodules`
--
CREATE TABLE IF NOT EXISTS `submodules` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`ModuleID` int(11) NOT NULL,
`MaxRate` int(11) NOT NULL,
`OrderNum` int(11) NOT NULL,
`Description` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
`Type` enum('CurrentControl','LandmarkControl') NOT NULL DEFAULT 'CurrentControl',
PRIMARY KEY (`ID`),
UNIQUE KEY `ModuleID_2` (`ModuleID`,`OrderNum`),
KEY `ModuleID` (`ModuleID`)
-- --------------------------------------------------------
--
-- Структура таблицы `grades`
--
CREATE TABLE IF NOT EXISTS `grades` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Degree` enum('bachelor','master','specialist') NOT NULL,
PRIMARY KEY (`ID`),
-- --------------------------------------------------------
--
-- Структура таблицы `teachers`
--
CREATE TABLE IF NOT EXISTS `teachers` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`LastName` varchar(30) CHARACTER SET utf8 NOT NULL,
`FirstName` varchar(30) CHARACTER SET utf8 NOT NULL,
`SecondName` varchar(30) CHARACTER SET utf8 DEFAULT NULL,
`DepartmentID` int(11) NULL,
`AccountID` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `FacultyID` (`DepartmentID`),
KEY `AccountID` (`AccountID`),
KEY `JobPositionID` (`JobPositionID`)
CREATE TABLE IF NOT EXISTS `user_roles` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Type` enum('student','teacher') NOT NULL,
`RoleName` varchar(30) CHARACTER SET utf8 NOT NULL,
`Mark` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `recovery_tokens `
--
CREATE TABLE IF NOT EXISTS `recovery_tokens` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`AccountID` int(11) NOT NULL,
`Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`),
KEY `AccountID` (`AccountID`),
UNIQUE KEY `Token` (`Token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `students_groups`
--
CREATE TABLE IF NOT EXISTS `students_groups` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`StudentID` int(11) NOT NULL,
`GroupID` int(11) NOT NULL,
`SemesterID` int(11) NOT NULL,
`State` enum('common', 'outlet', 'expulsion', 'leave') NOT NULL DEFAULT 'common',
`Date` date NULL DEFAULT NULL,
UNIQUE KEY `StudentID_2` (`StudentID`, `SemesterID`),
KEY `SemesterID` (`SemesterID`),
KEY `StudentID` (`StudentID`),
KEY `GroupID` (`GroupID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
--
-- Структура таблицы `exam_period_options`
CREATE TABLE IF NOT EXISTS `exam_period_options` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`SubmoduleID` int(11) NOT NULL,
`StudentID` int(11) NOT NULL,
`Type` enum('absence','pass'),
PRIMARY KEY (`ID`),
UNIQUE KEY `SubmoduleID` (`SubmoduleID`,`StudentID`),
KEY `SubmoduleID_2` (`SubmoduleID`),
KEY `StudentID` (`StudentID`),
KEY `StudentID_2` (`StudentID`),
KEY `StudentID_3` (`StudentID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Структура таблицы `auth_tokens`
--
CREATE TABLE IF NOT EXISTS `auth_tokens` (
`Token` char(40) charset ascii NOT NULL,
`AccountID` int(11) NOT NULL,
`Created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Accessed` TIMESTAMP NOT NULL DEFAULT 0,
`Mask` int(11) NOT NULL DEFAULT 0,
UNIQUE KEY `Token` (`Token`),
KEY `AccountID` (`AccountID`)
);