Don't like ads? PRO users don't see any ads ;-)
Guest

Courses Management System

By: jazzyF on Jun 10th, 2012  |  syntax: SQL  |  size: 5.63 KB  |  hits: 78  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  2. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  3. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
  4.  
  5. DROP SCHEMA IF EXISTS `uni` ;
  6. CREATE SCHEMA IF NOT EXISTS `uni` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
  7. USE `uni` ;
  8.  
  9. -- -----------------------------------------------------
  10. -- Table `uni`.`Person`
  11. -- -----------------------------------------------------
  12. DROP TABLE IF EXISTS `uni`.`Person` ;
  13.  
  14. CREATE  TABLE IF NOT EXISTS `uni`.`Person` (
  15.   `PersonID` INT NOT NULL ,
  16.   `firstName` VARCHAR(255) NOT NULL ,
  17.   `middleName` VARCHAR(255) NULL ,
  18.   `lastName` VARCHAR(255) NOT NULL ,
  19.   `DOB` DATE NOT NULL ,
  20.   `address` VARCHAR(255) NOT NULL ,
  21.   `email` VARCHAR(255) NOT NULL ,
  22.   PRIMARY KEY (`PersonID`) )
  23. ENGINE = InnoDB;
  24.  
  25.  
  26. -- -----------------------------------------------------
  27. -- Table `uni`.`Student`
  28. -- -----------------------------------------------------
  29. DROP TABLE IF EXISTS `uni`.`Student` ;
  30.  
  31. CREATE  TABLE IF NOT EXISTS `uni`.`Student` (
  32.   `StudentID` INT NULL AUTO_INCREMENT ,
  33.   `PersonID` INT NULL ,
  34.   `matriculationYear` YEAR NULL ,
  35.   INDEX `personID` (`PersonID` ASC) ,
  36.   PRIMARY KEY (`StudentID`) ,
  37.   CONSTRAINT `personID`
  38.     FOREIGN KEY (`PersonID` )
  39.     REFERENCES `uni`.`Person` (`PersonID` )
  40.     ON DELETE CASCADE
  41.     ON UPDATE CASCADE)
  42. ENGINE = InnoDB;
  43.  
  44.  
  45. -- -----------------------------------------------------
  46. -- Table `uni`.`Course`
  47. -- -----------------------------------------------------
  48. DROP TABLE IF EXISTS `uni`.`Course` ;
  49.  
  50. CREATE  TABLE IF NOT EXISTS `uni`.`Course` (
  51.   `CourseID` INT(8) ZEROFILL NULL AUTO_INCREMENT ,
  52.   `title` VARCHAR(255) NOT NULL ,
  53.   `semester` VARCHAR(15) NOT NULL ,
  54.   `startDate` DATE NOT NULL ,
  55.   `endDate` DATE NOT NULL ,
  56.   `examDate` DATETIME NOT NULL ,
  57.   `semesterHours` INT NOT NULL ,
  58.   PRIMARY KEY (`CourseID`) )
  59. ENGINE = InnoDB;
  60.  
  61.  
  62. -- -----------------------------------------------------
  63. -- Table `uni`.`Lecturer`
  64. -- -----------------------------------------------------
  65. DROP TABLE IF EXISTS `uni`.`Lecturer` ;
  66.  
  67. CREATE  TABLE IF NOT EXISTS `uni`.`Lecturer` (
  68.   `LecturerID` INT(8) ZEROFILL NULL AUTO_INCREMENT ,
  69.   `PersonID` INT NOT NULL ,
  70.   PRIMARY KEY (`LecturerID`) ,
  71.   INDEX `fk_personID` (`PersonID` ASC) ,
  72.   CONSTRAINT `fk_personID`
  73.     FOREIGN KEY (`PersonID` )
  74.     REFERENCES `uni`.`Person` (`PersonID` )
  75.     ON DELETE CASCADE
  76.     ON UPDATE CASCADE)
  77. ENGINE = InnoDB;
  78.  
  79.  
  80. -- -----------------------------------------------------
  81. -- Table `uni`.`Department`
  82. -- -----------------------------------------------------
  83. DROP TABLE IF EXISTS `uni`.`Department` ;
  84.  
  85. CREATE  TABLE IF NOT EXISTS `uni`.`Department` (
  86.   `DepartmentID` INT(3) ZEROFILL NULL AUTO_INCREMENT ,
  87.   `name` VARCHAR(255) NOT NULL ,
  88.   `headOfDepartment` INT(8) ZEROFILL NULL ,
  89.   PRIMARY KEY (`DepartmentID`) ,
  90.   INDEX `fk_HOD` (`headOfDepartment` ASC) ,
  91.   CONSTRAINT `fk_HOD`
  92.     FOREIGN KEY (`headOfDepartment` )
  93.     REFERENCES `uni`.`Lecturer` (`LecturerID` )
  94.     ON DELETE NO ACTION
  95.     ON UPDATE NO ACTION)
  96. ENGINE = InnoDB;
  97.  
  98.  
  99. -- -----------------------------------------------------
  100. -- Table `uni`.`CoursesLecturers`
  101. -- -----------------------------------------------------
  102. DROP TABLE IF EXISTS `uni`.`CoursesLecturers` ;
  103.  
  104. CREATE  TABLE IF NOT EXISTS `uni`.`CoursesLecturers` (
  105.   `CourseLecturerID` INT NULL ,
  106.   `LecturerID` INT(8) ZEROFILL NULL ,
  107.   `CourseID` INT(8) ZEROFILL NULL ,
  108.   PRIMARY KEY (`CourseLecturerID`) ,
  109.   INDEX `fk_Lecturer` (`LecturerID` ASC) ,
  110.   INDEX `fk_Course` (`CourseID` ASC) ,
  111.   CONSTRAINT `fk_Lecturer`
  112.     FOREIGN KEY (`LecturerID` )
  113.     REFERENCES `uni`.`Lecturer` (`LecturerID` )
  114.     ON DELETE CASCADE
  115.     ON UPDATE CASCADE,
  116.   CONSTRAINT `fk_Course`
  117.     FOREIGN KEY (`CourseID` )
  118.     REFERENCES `uni`.`Course` (`CourseID` )
  119.     ON DELETE CASCADE
  120.     ON UPDATE CASCADE)
  121. ENGINE = InnoDB;
  122.  
  123.  
  124. -- -----------------------------------------------------
  125. -- Table `uni`.`StudentsCourses`
  126. -- -----------------------------------------------------
  127. DROP TABLE IF EXISTS `uni`.`StudentsCourses` ;
  128.  
  129. CREATE  TABLE IF NOT EXISTS `uni`.`StudentsCourses` (
  130.   `StudentCourseID` INT NOT NULL AUTO_INCREMENT ,
  131.   `StudentID` INT NULL ,
  132.   `CourseID` INT(8) UNSIGNED ZEROFILL NOT NULL ,
  133.   `score` INT NULL ,
  134.   PRIMARY KEY (`StudentCourseID`) ,
  135.   INDEX `fk_courseID` (`CourseID` ASC) ,
  136.   INDEX `fk_StudentID` (`StudentID` ASC) ,
  137.   CONSTRAINT `fk_courseID`
  138.     FOREIGN KEY (`CourseID` )
  139.     REFERENCES `uni`.`Course` (`CourseID` )
  140.     ON DELETE CASCADE
  141.     ON UPDATE CASCADE,
  142.   CONSTRAINT `fk_StudentID`
  143.     FOREIGN KEY (`StudentID` )
  144.     REFERENCES `uni`.`Student` (`StudentID` )
  145.     ON DELETE NO ACTION
  146.     ON UPDATE NO ACTION)
  147. ENGINE = InnoDB;
  148.  
  149.  
  150. -- -----------------------------------------------------
  151. -- Table `uni`.`PersonsDepartments`
  152. -- -----------------------------------------------------
  153. DROP TABLE IF EXISTS `uni`.`PersonsDepartments` ;
  154.  
  155. CREATE  TABLE IF NOT EXISTS `uni`.`PersonsDepartments` (
  156.   `ID` INT NOT NULL AUTO_INCREMENT ,
  157.   `PersonID` INT NOT NULL ,
  158.   `DepartmentID` INT(3) ZEROFILL NULL ,
  159.   PRIMARY KEY (`ID`) ,
  160.   INDEX `fk_Person` (`PersonID` ASC) ,
  161.   INDEX `fk_Department` (`DepartmentID` ASC) ,
  162.   CONSTRAINT `fk_Person`
  163.     FOREIGN KEY (`PersonID` )
  164.     REFERENCES `uni`.`Person` (`PersonID` )
  165.     ON DELETE CASCADE
  166.     ON UPDATE CASCADE,
  167.   CONSTRAINT `fk_Department`
  168.     FOREIGN KEY (`DepartmentID` )
  169.     REFERENCES `uni`.`Department` (`DepartmentID` )
  170.     ON DELETE CASCADE
  171.     ON UPDATE CASCADE)
  172. ENGINE = InnoDB;
  173.  
  174.  
  175.  
  176. SET SQL_MODE=@OLD_SQL_MODE;
  177. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  178. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;