diff --git a/db/Sample.sql b/db/Sample.sql
deleted file mode 100644
index 3ac1fc2543edbc23215d993fa1cf4bbfda528694..0000000000000000000000000000000000000000
--- a/db/Sample.sql
+++ /dev/null
@@ -1,306 +0,0 @@
--- phpMyAdmin SQL Dump
--- version 4.0.10
--- http://www.phpmyadmin.net
---
--- РҐРѕСЃС‚: 127.0.0.1:3306
--- Время создания: Авг 28 2014 г., 19:29
--- Версия сервера: 5.5.37-log
--- Версия PHP: 5.3.28
-
-SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
-SET time_zone = "+00:00";
-
-
-/*!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 */;
-
---
--- База данных: `Sample2`
---
-
---
--- Дамп данных таблицы `grades`
---
-INSERT INTO `grades` (`ID`, `Num`, `Degree`) VALUES
-(1, 1, 'bachelor'),
-(2, 2, 'bachelor'),
-(3, 3, 'bachelor'),
-(4, 4, 'bachelor'),
-(5, 5, 'specialist'),
-(6, 1, 'master'),
-(7, 2, 'master');
-
---
--- Дамп данных таблицы `job_positions`
---
-
-INSERT INTO `job_positions` (`ID`, `Name`) VALUES
-(1, 'Аспирант'),
-(2, 'Ассистент'),
-(3, 'Ведущий научный сотрудник'),
-(4, 'Главный научный сотрудник'),
-(5, 'Докторант'),
-(6, 'Доцент'),
-(7, 'Младший научный сотрудник'),
-(8, 'Научный сотрудник'),
-(9, 'Преподаватель'),
-(10, 'Профессор'),
-(11, 'Старший преподаватель'),
-(12, 'Стажер'),
-(13, 'Старший научный сотрудник');
-
---
--- Дамп данных таблицы `accounts`
---
-
-INSERT INTO `accounts` (`ID`, `Login`, `Password`, `EMail`, `UserRoleID`, `ActivationCode`, `IsEnabled`, `UserAgent`) VALUES
-(1, 'student1', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student1@mail.ru', 1, NULL, 1, NULL),
-(2, 'student2', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student2@mail.ru', 1, NULL, 1, NULL),
-(3, 'student3', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student3@mail.ru', 1, NULL, 1, NULL),
-(4, 'student4', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student4@mail.ru', 1, NULL, 1, NULL),
-(5, 'student5', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student5@mail.ru', 1, NULL, 1, NULL),
-(6, 'student6', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student6@mail.ru', 1, NULL, 1, NULL),
-(7, 'student7', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student7@mail.ru', 1, NULL, 1, NULL),
-(8, 'student8', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student8@mail.ru', 1, NULL, 1, NULL),
-(9, NULL, NULL, NULL, 1, 'code2', 1, NULL),
-(10, 'student10', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student10@mail.ru', 1, NULL, 1, NULL),
-(11, 'student11', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student11@mail.ru', 1, NULL, 1, NULL),
-(12, 'student12', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student12@mail.ru', 1, NULL, 1, NULL),
-(13, 'student13', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student13@mail.ru', 1, NULL, 1, NULL),
-(14, 'student14', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student14@mail.ru', 1, NULL, 1, NULL),
-(15, 'student15', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'student15@mail.ru', 1, NULL, 1, NULL),
-(16, 'teacher1', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'teacher1@mail.ru', 2, NULL, 1, NULL),
-(17, 'teacher2', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'teacher2@mail.ru', 2, NULL, 1, NULL),
-(18, 'teacher3', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'teacher3@mail.ru', 3, NULL, 1, NULL),
-(19, 'teacher4', '7b21848ac9af35be0ddb2d6b9fc3851934db8420', 'teacher4@mail.ru', 2, NULL, 1, NULL),
-(20, NULL, NULL, NULL, 2, 'code1', 1, NULL);
-
-
---
--- Дамп данных таблицы `faculties`
---
-
-INSERT INTO `faculties` (`ID`, `Name`, `Abbr`) VALUES
-(1, 'Институт математики, механики и компьютерных наук', 'Мехмат'),
-(2, 'Юридический факультет', 'Юрфак');
-
-
---
--- Дамп данных таблицы `subjects`
---
-
-INSERT INTO `subjects` (`ID`, `Name`, `Abbr`) VALUES
-(1, 'Математический анализ', 'Матан'),
-(2, 'Дифференциальные уравнения', 'Диф. ур-я'),
-(3, 'Иностранный язык', 'Ин.яз.'),
-(4, 'Операционные системы', 'ОС'),
-(5, 'Международное право', 'Меж. пр-во'),
-(6, 'Римское право', 'Рим. пр-во');
-
-
---
--- Дамп данных таблицы `subjects_faculties`
---
-
-INSERT INTO `subjects_faculties` (`ID`, `SubjectID`, `FacultyID`) VALUES
-(1, 1, 1),
-(2, 2, 1),
-(3, 3, 1),
-(4, 3, 2),
-(5, 4, 1),
-(6, 5, 2),
-(7, 6, 2);
-
-
-
---
--- Дамп данных таблицы `departments`
---
-
-INSERT INTO `departments` (`ID`, `Name`, `FacultyID`) VALUES
-(1, 'Кафедра алгебры и дискретной математики', 1),
-(2, 'Кафедра высокопроизводительных вычислений и информационно-​коммуникационных технологий', 1),
-(3, 'Кафедра вычислительной математики и математической физики', 1),
-(4, 'Кафедра геометрии', 1),
-(5, 'Кафедра дифференциальных и интегральных уравнений', 1),
-(6, 'Кафедра информатики и вычислительного эксперимента', 1),
-(7, 'Кафедра высшей математики и исследования операций ', 1),
-(8, 'Кафедра математического анализа', 1),
-(9, 'Кафедра математического моделирования', 1),
-(10, 'Кафедра прикладной математики и программирования', 1),
-(11, 'Кафедра теоретической и компьютерной гидроаэродинамики', 1),
-(12, 'Кафедра теории упругости', 1),
-(13, 'Кафедра технологий автоматизации в бизнесе', 1),
-(14, NULL, 1),
-(15, 'Кафедра международного права', 2),
-(16, NULL, 2);
-
---
--- Дамп данных таблицы `semesters`
---
-
-INSERT INTO `semesters` (`ID`, `Year`, `Num`) VALUES
-(1, 2014, 1);
-
---
--- Дамп данных таблицы `specializations`
---
-
-INSERT INTO `specializations` (`ID`, `Name`, `Abbr`, `FacultyID`) VALUES
-(1, 'Прикладная математика и информатика', 'ПМиИ', 1),
-(2, 'Информационные технологии', 'ИТ', 1),
-(3, 'Математика', 'Матем', 1),
-(4, 'Механика', 'Механика', 1),
-(5, NULL, NULL, 1),
-(6, NULL, NULL, 2);
-
---
--- Дамп данных таблицы `study_groups`
---
-
-INSERT INTO `study_groups` (`ID`, `GradeID`, `GroupNum`, `SpecializationID`, `Name`) VALUES
-(1, 1, 1, 1, NULL),
-(2, 1, 2, 5, NULL),
-(3, 1, 3, 2, NULL),
-(4, 2, 1, 1, NULL);
-
---
--- Дамп данных таблицы `students`
---
-
-INSERT INTO `students` (`ID`, `GroupID`, `AccountID`, `LastName`, `FirstName`, `SecondName`) VALUES
-(1, 1, 1, 'Началов', 'Сергей', 'Петрович'),
-(2, 1, 2, 'Миронова', 'Людмила', 'Игоревна'),
-(3, 1, 3, 'Гервич', 'Лев', 'Романович'),
-(4, 1, 4, 'Кузнецов', 'Валентин', 'Сергеевич'),
-(5, 1, 5, 'Трошкина', 'Екатерина', 'Сергеевна'),
-(6, 2, 6, 'Пустовалова', 'Жанна', 'Михайловна'),
-(7, 2, 7, 'Каменюкин', 'Роман', 'Васильевич'),
-(8, 2, 8, 'Сапрыкин', 'Михаил', 'Иванович'),
-(9, 2, 9, 'Брагин', 'Николай', 'Карпович'),
-(10, 2, 10, 'Поркофьева', 'Ирина', 'Витальевна'),
-(11, 3, 11, 'Кошкина', 'Антонина', 'Михайловна'),
-(12, 3, 12, 'Курдюмов', 'Алексей', 'Николаевич'),
-(13, 3, 13, 'Шульженко', 'Александр', 'Михайлович'),
-(14, 3, 14, 'Мальцева', 'Анна', 'Юрьевна'),
-(15, 3, 15, 'Константинов', 'Антон', 'Витальевич');
-
---
--- Дамп данных таблицы `teachers`
---
-
-INSERT INTO `teachers` (`ID`, `LastName`, `FirstName`, `SecondName`, `JobPositionID`, `DepartmentID`, `AccountID`) VALUES
-(1, 'Лобачевский', 'Николай', 'Иванович', 1, 14, 16),
-(2, 'Лафонтен', 'Анри', NULL, 2, 14, 17),
-(3, 'Карамзин', 'Николай', 'Михайлович', 3, 14, 18),
-(4, 'Пачоли', 'Лука', NULL, 3, 1, 19),
-(5, 'Менделеев', 'Дмитрий', 'Иванович', 3, 14, 20);
-
---
--- Дамп данных таблицы `disciplines`
---
-
-INSERT INTO `disciplines` (`ID`, `GradeID`, `SubjectID`, `AuthorID`, `ExamType`, `SemesterID`, `PracticeCount`, `LectureCount`, `FacultyID`) VALUES
-(1, 1, 1, 1, 'exam', 1, 0, 36, 1),
-(2, 1, 5, 2, 'exam', 1, 18, 36, 1),
-(3, 1, 2, 1, 'credit', 1, 18, 0, 1),
-(4, 1, 4, 1, 'credit', 1, 18, 0, 1);
-
---
--- Дамп данных таблицы `modules`
---
-
-INSERT INTO `modules` (`ID`, `Name`, `OrderNum`, `DisciplineID`, `Type`) VALUES
-(1, 'Экзамен', 100, 1, 2),
-(2, 'Теория пределов', 2, 1, 1),
-(3, 'Дифференцирование', 3, 1, 1),
-(4, 'Интегрирование', 4, 1, 1),
-(5, 'Экзамен', 100, 2, 2),
-(6, 'Модуль 1', 2, 2, 1),
-(7, 'Модуль 2', 3, 2, 1),
-(8, 'Линейные дифференциальные уравнения', 1, 3, 1),
-(9, 'Дифференциальные уравнения второго порядка', 2, 3, 1),
-(10, 'Устройство операцинных систем', 1, 4, 1),
-(11, 'Многопоточность', 2, 4, 1),
-(12, 'Добор баллов', 50, 1 , 4),
-(13, 'Добор баллов', 50, 2 , 4);
-
---
--- Дамп данных таблицы `submodules`
---
-
-INSERT INTO `submodules` (`ID`, `ModuleID`, `Name`, `OrderNum`, `MaxRate`, `Description`, `Type`) VALUES
-(1, 2, 'Ответы на занятиях', 1, 5, '', 'CurrentControl'),
-(2, 2, 'Тест', 2, 5, '', 'CurrentControl'),
-(3, 2, 'Контрольная работа', 3, 10, '', 'LandmarkControl'),
-(4, 3, 'Ответы на занятиях', 1, 5, '', 'CurrentControl'),
-(5, 3, 'Индивидуальные задания', 2, 5, '', 'CurrentControl'),
-(6, 3, 'Контрольная работа', 3, 10, '', 'LandmarkControl'),
-(7, 4, 'Ответы на занятиях', 1, 5, '', 'CurrentControl'),
-(8, 4, 'Самостоятельная работа', 2, 5, '', 'CurrentControl'),
-(9, 4, 'Контрольная работа', 3, 10, '', 'LandmarkControl'),
-(10, 6, 'Ответы на занятиях', 1, 10, '', 'CurrentControl'),
-(11, 6, 'Реферат', 2, 10, '', 'CurrentControl'),
-(12, 6, 'Контрольная работа', 3, 10, '', 'LandmarkControl'),
-(13, 7, 'Ответы на занятиях', 1, 10, '', 'CurrentControl'),
-(14, 7, 'Доклад', 2, 10, '', 'CurrentControl'),
-(15, 7, 'Контрольная работа', 3, 10, '', 'LandmarkControl'),
-(16, 8, 'Ответы на занятиях', 1, 10, '', 'CurrentControl'),
-(17, 8, 'Домашние задания', 2, 10, '', 'CurrentControl'),
-(18, 8, 'Самостоятельная работа', 3, 10, '', 'CurrentControl'),
-(19, 8, 'Контрольный тест', 4, 20, '', 'LandmarkControl'),
-(20, 9, 'Ответы на занятиях', 1, 10, '', 'CurrentControl'),
-(21, 9, 'Домашние задания', 2, 10, '', 'CurrentControl'),
-(22, 9, 'Индивидуальное задание', 3, 10, '', 'CurrentControl'),
-(23, 9, 'Контрольный тест', 4, 20, '', 'LandmarkControl'),
-(24, 10, 'Домашние задания', 1, 10, '', 'CurrentControl'),
-(25, 10, 'Индивидуальное задание', 2, 10, '', 'CurrentControl'),
-(26, 10, 'Самостоятельная работа', 3, 10, '', 'CurrentControl'),
-(27, 10, 'Коллоквиум', 4, 20, '', 'LandmarkControl'),
-(28, 11, 'Домашние задания', 1, 10, '', 'CurrentControl'),
-(29, 11, 'Индивидуальное задание', 2, 10, '', 'CurrentControl'),
-(30, 11, 'Контрольный работа', 3, 20, '', 'LandmarkControl'),
-(31, 1, '', 1, 40, '', 'LandmarkControl'),
-(32, 1, '', 2, 40, '', 'LandmarkControl'),
-(33, 1, '', 3, 40, '', 'LandmarkControl'),
-(34, 5, '', 1, 40, '', 'LandmarkControl'),
-(35, 5, '', 2, 40, '', 'LandmarkControl'),
-(36, 5, '', 3, 40, '', 'LandmarkControl'),
-(37, 12, '', 1, 38, NULL, 'LandmarkControl'),
-(38, 13, '', 1, 38, NULL, 'LandmarkControl');
-
---
--- Дамп данных таблицы `disciplines_teachers`
---
-
-INSERT INTO `disciplines_teachers` (`ID`, `DisciplineID`, `TeacherID`) VALUES
-(1, 1, 1),
-(2, 1, 3),
-(3, 2, 2),
-(4, 3, 1),
-(5, 4, 1);
-
---
--- Дамп данных таблицы `disciplines_groups`
---
-
-INSERT INTO `disciplines_groups` (`ID`, `DisciplineID`, `GroupID`) 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);
-
-
-
-
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
diff --git a/db/StoredFunctions.sql b/db/StoredFunctions.sql
index 3ecdec2f74e27d65b688a914fad4a24adf42f5e6..9c2e4d3f8197b83726b45e449692001a55924a04 100644
--- a/db/StoredFunctions.sql
+++ b/db/StoredFunctions.sql
@@ -521,6 +521,39 @@ BEGIN
 END //
 
 
+-- -1 - не сотрудник деканата и не преподаватель дисциплины
+-- 0 - только чтение
+-- 1 - редактирование
+DROP FUNCTION IF EXISTS GetEditRightsForTeacher//
+CREATE FUNCTION `GetEditRightsForTeacher`   
+    (   `pTeacherID` INT,
+        `pDisciplineID` INT
+    )   RETURNS int(11)
+    NO SQL
+BEGIN
+    DECLARE vUserRole, vDiscTeacherID INT DEFAULT -1;
+              
+    SELECT disciplines_teachers.ID INTO vDiscTeacherID
+        FROM `disciplines_teachers`
+        WHERE disciplines_teachers.DisciplineID = pDisciplineID AND
+              disciplines_teachers.TeacherID = pTeacherID;
+
+    IF vDiscTeacherID > 0 THEN
+        RETURN 1;
+    END IF;
+
+    SELECT accounts.UserRoleID INTO vUserRole
+        FROM `teachers`
+        INNER JOIN `accounts` ON teachers.AccountID=accounts.ID
+        WHERE teachers.ID = pTeacherID;
+    IF vUserRole = 4 THEN # 4 - сотрудник деканата
+        RETURN 0;
+    END IF;
+
+    RETURN -1;
+END //
+
+
 
 # -------------------------------------------------------------------------------------------
 # Label: students
diff --git a/db/Structure.sql b/db/Structure.sql
index 18cd400ee24fd9d99156b09919cd042e3cc6b984..a62e171ae0bb4c98eafa4e51fc8300f60d3298c1 100644
--- a/db/Structure.sql
+++ b/db/Structure.sql
@@ -30,11 +30,11 @@ SET time_zone = "+00:00";
 
 CREATE TABLE IF NOT EXISTS `accounts` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `Login` varchar(50) CHARACTER SET utf8_general_ci DEFAULT NULL,
-  `Password` varchar(64) CHARACTER SET utf8_general_ci DEFAULT NULL,
-  `EMail` varchar(255) CHARACTER SET utf8_general_ci DEFAULT NULL,
+  `Login` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
+  `Password` varchar(64) CHARACTER SET utf8 DEFAULT NULL,
+  `EMail` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
   `UserRoleID` int(11) NOT NULL,
-  `ActivationCode` varchar(40) CHARACTER SET utf8_general_ci DEFAULT NULL,
+  `ActivationCode` varchar(40) CHARACTER SET utf8 DEFAULT NULL,
   `IsEnabled` tinyint(1) NOT NULL DEFAULT '1',
   `UserAgent` text,
   `Notification` int(11) NOT NULL DEFAULT '0',
@@ -53,7 +53,7 @@ CREATE TABLE IF NOT EXISTS `accounts` (
 
 CREATE TABLE IF NOT EXISTS `job_positions` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `Name` varchar(200) CHARACTER SET utf8_general_ci NOT NULL,
+  `Name` varchar(200) CHARACTER SET utf8 NOT NULL,
   PRIMARY KEY (`ID`),
   UNIQUE KEY `Name` (`Name`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
@@ -66,7 +66,7 @@ CREATE TABLE IF NOT EXISTS `job_positions` (
 
 CREATE TABLE IF NOT EXISTS `departments` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `Name` varchar(200) CHARACTER SET utf8_general_ci NULL,
+  `Name` varchar(200) CHARACTER SET utf8 NULL,
   `FacultyID` int(11) NOT NULL,
   PRIMARY KEY (`ID`),
   UNIQUE KEY `Name` (`Name`,`FacultyID`),
@@ -160,8 +160,8 @@ CREATE TABLE IF NOT EXISTS `disciplines_teachers` (
 
 CREATE TABLE IF NOT EXISTS `faculties` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `Name` varchar(100) CHARACTER SET utf8_general_ci NOT NULL,
-  `Abbr` varchar(20) CHARACTER SET utf8_general_ci NOT NULL,
+  `Name` varchar(100) CHARACTER SET utf8 NOT NULL,
+  `Abbr` varchar(20) CHARACTER SET utf8 NOT NULL,
   PRIMARY KEY (`ID`),
   UNIQUE KEY `Name` (`Name`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
@@ -175,8 +175,8 @@ CREATE TABLE IF NOT EXISTS `faculties` (
 CREATE TABLE IF NOT EXISTS `general_settings` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `Val` int(11) DEFAULT NULL,
-  `ValS` varchar(300) CHARACTER SET utf8_general_ci DEFAULT NULL,
-  `Name` varchar(50) CHARACTER SET utf8_general_ci NOT NULL,
+  `ValS` varchar(300) CHARACTER SET utf8 DEFAULT NULL,
+  `Name` varchar(50) CHARACTER SET utf8 NOT NULL,
   PRIMARY KEY (`ID`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
@@ -228,7 +228,7 @@ CREATE TABLE IF NOT EXISTS `logs_signin` (
 
 CREATE TABLE IF NOT EXISTS `modules` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `Name` varchar(200) CHARACTER SET utf8_general_ci NOT NULL,
+  `Name` varchar(200) CHARACTER SET utf8 NOT NULL,
   `OrderNum` int(11) NOT NULL,
   `DisciplineID` int(11) NOT NULL,
   `Type` enum('regular','exam', 'bonus', 'extra') NOT NULL DEFAULT 'regular',
@@ -245,7 +245,7 @@ CREATE TABLE IF NOT EXISTS `modules` (
 
 CREATE TABLE IF NOT EXISTS `page_access` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `Pagename` text CHARACTER SET utf8_general_ci NOT NULL,
+  `Pagename` text CHARACTER SET utf8 NOT NULL,
   `Bitmask` int(11) NOT NULL,
   PRIMARY KEY (`ID`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -280,8 +280,8 @@ CREATE TABLE IF NOT EXISTS `rating_table` (
 CREATE TABLE IF NOT EXISTS `requests` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `AccountID` int(11) DEFAULT NULL,
-  `Title` varchar(50) CHARACTER SET utf8_general_ci NULL DEFAULT NULL,
-  `Description` text CHARACTER SET utf8_general_ci NOT NULL,
+  `Title` varchar(50) CHARACTER SET utf8 NULL DEFAULT NULL,
+  `Description` text CHARACTER SET utf8 NOT NULL,
   `Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
   `Status` enum('opened','processed','closed') NOT NULL DEFAULT 'opened',
   PRIMARY KEY (`ID`),
@@ -347,9 +347,9 @@ CREATE TABLE IF NOT EXISTS `semesters` (
 
 CREATE TABLE IF NOT EXISTS `specializations` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `Name` varchar(50) CHARACTER SET utf8_general_ci NULL,
-  `Abbr` varchar(20) CHARACTER SET utf8_general_ci NULL,
-  `Code` varchar(12) CHARACTER SET utf8_general_ci NULL,
+  `Name` varchar(50) CHARACTER SET utf8 NULL,
+  `Abbr` varchar(20) CHARACTER SET utf8 NULL,
+  `Code` varchar(12) CHARACTER SET utf8 NULL,
   `FacultyID` int(11) NOT NULL,
   PRIMARY KEY (`ID`),
   UNIQUE KEY `Name` (`Name`,`FacultyID`),
@@ -366,9 +366,9 @@ CREATE TABLE IF NOT EXISTS `students` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `GroupID` int(11) NOT NULL,
   `AccountID` int(11) NOT NULL,
-  `LastName` varchar(30) CHARACTER SET utf8_general_ci NOT NULL,
-  `FirstName` varchar(30) CHARACTER SET utf8_general_ci NOT NULL,
-  `SecondName` varchar(30) CHARACTER SET utf8_general_ci DEFAULT 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 `GroupID` (`GroupID`),
   KEY `AccountID` (`AccountID`)
@@ -385,7 +385,7 @@ CREATE TABLE IF NOT EXISTS `study_groups` (
   `GradeID` int(11) NOT NULL,
   `GroupNum` int(11) NOT NULL,
   `SpecializationID` int(11) NOT NULL,
-  `Name` varchar(50) CHARACTER SET utf8_general_ci DEFAULT NULL,
+  `Name` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
   PRIMARY KEY (`ID`),
   UNIQUE KEY `GradeID_2` (`GradeID`,`GroupNum`,`SpecializationID`),
   KEY `GradeID` (`GradeID`),
@@ -400,8 +400,8 @@ CREATE TABLE IF NOT EXISTS `study_groups` (
 
 CREATE TABLE IF NOT EXISTS `subjects` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `Name` varchar(200) CHARACTER SET utf8_general_ci NOT NULL,
-  `Abbr` varchar(20) CHARACTER SET utf8_general_ci DEFAULT NULL,
+  `Name` varchar(200) CHARACTER SET utf8 NOT NULL,
+  `Abbr` varchar(20) CHARACTER SET utf8 DEFAULT NULL,
   PRIMARY KEY (`ID`),
   UNIQUE KEY `Name` (`Name`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
@@ -435,7 +435,7 @@ CREATE TABLE IF NOT EXISTS `submodules` (
   `MaxRate` int(11) NOT NULL,
   `OrderNum` int(11) NOT NULL,
   `Name` varchar(200) NOT NULL,
-  `Description` varchar(200) CHARACTER SET utf8_general_ci DEFAULT NULL,
+  `Description` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
   `IsUsed` tinyint(1) NOT NULL DEFAULT 0,
   `Type` enum('CurrentControl','LandmarkControl') NOT NULL DEFAULT 'CurrentControl',
   PRIMARY KEY (`ID`),
@@ -469,9 +469,9 @@ CREATE TABLE IF NOT EXISTS `grades` (
 
 CREATE TABLE IF NOT EXISTS `teachers` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
-  `LastName` varchar(30) CHARACTER SET utf8_general_ci NOT NULL,
-  `FirstName` varchar(30) CHARACTER SET utf8_general_ci NOT NULL,
-  `SecondName` varchar(30) CHARACTER SET utf8_general_ci DEFAULT 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,
   `JobPositionID` int(11) NOT NULL,
   `DepartmentID` int(11) NULL,
   `AccountID` int(11) NOT NULL,
@@ -491,7 +491,7 @@ CREATE TABLE IF NOT EXISTS `teachers` (
 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_general_ci NOT NULL,
+  `RoleName` varchar(30) CHARACTER SET utf8 NOT NULL,
   `Mark` int(11) NOT NULL,
   PRIMARY KEY (`ID`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
@@ -507,7 +507,7 @@ 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,
-  `Token` varchar(100) CHARACTER SET utf8_general_ci NOT NULL,
+  `Token` varchar(100) CHARACTER SET utf8 NOT NULL,
   `IsUsed`  tinyint(1) NOT NULL DEFAULT '0',
   PRIMARY KEY (`ID`),
   KEY `AccountID` (`AccountID`),