From 81bbbc10673447c35f255b5a020d1658451401ad Mon Sep 17 00:00:00 2001
From: PavelBegunkov <asml.Silence@gmail.com>
Date: Sat, 30 Aug 2014 19:35:51 +0400
Subject: [PATCH] db restrictions

---
 db/Sample.sql    |  3 +--
 db/Structure.sql | 24 ++++++++++++++++++------
 2 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/db/Sample.sql b/db/Sample.sql
index 10a9f3a37..9c4c5753b 100644
--- a/db/Sample.sql
+++ b/db/Sample.sql
@@ -39,8 +39,7 @@ INSERT INTO `job_positions` (`ID`, `Name`) VALUES
 (10, 'Профессор'),
 (11, 'Старший преподаватель'),
 (12, 'Стажер'),
-(13, 'Старший научный сотрудник'),
-(14, 'Доцент');
+(13, 'Старший научный сотрудник');
 
 --
 -- Дамп данных таблицы `accounts`
diff --git a/db/Structure.sql b/db/Structure.sql
index 11985a412..b669520c6 100644
--- a/db/Structure.sql
+++ b/db/Structure.sql
@@ -36,20 +36,23 @@ CREATE TABLE IF NOT EXISTS `accounts` (
   `isEnabled` tinyint(1) NOT NULL DEFAULT '1',
   `UserAgent` text,
   PRIMARY KEY (`ID`),
-  UNIQUE KEY `Login` (`Login`,`EMail`),
+  UNIQUE KEY `Login` (`Login`),
+  UNIQUE KEY `EMail` (`EMail`),
   KEY `UserRoleID` (`UserRoleID`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
+
 -- --------------------------------------------------------
 
 --
--- Структура таблицы `job_positions`
+-- Структура таблицы `accounts`
 --
 
 CREATE TABLE IF NOT EXISTS `job_positions` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `Name` varchar(200) NOT NULL,
-  PRIMARY KEY (`ID`)
+  PRIMARY KEY (`ID`),
+  UNIQUE KEY `Name` (`Name`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
 -- --------------------------------------------------------
@@ -63,6 +66,7 @@ CREATE TABLE IF NOT EXISTS `departments` (
   `Name` varchar(200) NOT NULL,
   `FacultyID` int(11) NOT NULL,
   PRIMARY KEY (`ID`),
+  UNIQUE KEY `Name` (`Name`,`FacultyID`),
   KEY `FacultyID` (`FacultyID`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
@@ -100,6 +104,7 @@ CREATE TABLE IF NOT EXISTS `disciplines_groups` (
   `DisciplineID` int(11) NOT NULL,
   `StudyGroupID` int(11) NOT NULL,
   PRIMARY KEY (`ID`),
+  UNIQUE KEY `DisciplineID_2` (`DisciplineID`,`StudyGroupID`),
   KEY `DisciplineID` (`DisciplineID`),
   KEY `StudyGroupID` (`StudyGroupID`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -116,6 +121,7 @@ CREATE TABLE IF NOT EXISTS `disciplines_students` (
   `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;
@@ -146,7 +152,8 @@ CREATE TABLE IF NOT EXISTS `faculties` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `Name` varchar(100) NOT NULL,
   `Abbr` varchar(20) NOT NULL,
-  PRIMARY KEY (`ID`)
+  PRIMARY KEY (`ID`),
+  UNIQUE KEY `Name` (`Name`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
 -- --------------------------------------------------------
@@ -224,6 +231,7 @@ CREATE TABLE IF NOT EXISTS `rating_table` (
   `Rate` int(11) NOT NULL,
   `Date` date NOT NULL,
   PRIMARY KEY (`ID`),
+  UNIQUE KEY `StudentID_2` (`StudentID`,`SubmoduleID`),
   KEY `StudentID` (`StudentID`),
   KEY `SubmoduleID` (`SubmoduleID`),
   KEY `TeacherID` (`TeacherID`)
@@ -255,7 +263,8 @@ CREATE TABLE IF NOT EXISTS `semesters` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `Year` int(11) NOT NULL,
   `Num` int(11) NOT NULL,
-  PRIMARY KEY (`ID`)
+  PRIMARY KEY (`ID`),
+  UNIQUE KEY `Year` (`Year`,`Num`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
 -- --------------------------------------------------------
@@ -270,6 +279,7 @@ CREATE TABLE IF NOT EXISTS `specializations` (
   `Abbr` varchar(20) NOT NULL,
   `FacultyID` int(11) NOT NULL,
   PRIMARY KEY (`ID`),
+  UNIQUE KEY `Name` (`Name`,`FacultyID`),
   KEY `FacultyID` (`FacultyID`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
@@ -304,6 +314,7 @@ CREATE TABLE IF NOT EXISTS `study_groups` (
   `SpecializationID` int(11) NOT NULL,
   `Name` varchar(50) DEFAULT NULL,
   PRIMARY KEY (`ID`),
+  UNIQUE KEY `Grade` (`Grade`,`GroupNum`,`SpecializationID`),
   KEY `SpecializtionID` (`SpecializationID`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
@@ -317,7 +328,8 @@ CREATE TABLE IF NOT EXISTS `subjects` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `Name` varchar(50) NOT NULL,
   `Abbr` varchar(20) DEFAULT NULL,
-  PRIMARY KEY (`ID`)
+  PRIMARY KEY (`ID`),
+  UNIQUE KEY `Name` (`Name`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
 
 -- --------------------------------------------------------
-- 
GitLab