sqlschema ,set up react

parent 985cc365
Showing with 155 additions and 109 deletions
-- phpMyAdmin SQL Dump -- MySQL Workbench Forward Engineering
-- version 5.1.1deb5ubuntu1
-- https://www.phpmyadmin.net/ SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
-- SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
-- Host: localhost:3306 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
-- Generation Time: Feb 20, 2025 at 02:02 PM
-- Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 -- -----------------------------------------------------
-- PHP Version: 8.1.2-1ubuntu2.20 -- Schema Exam_WebPage
-- -----------------------------------------------------
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION; -- -----------------------------------------------------
SET time_zone = "+00:00"; -- Schema Exam_WebPage
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `Exam_WebPage` DEFAULT CHARACTER SET utf8 ;
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; USE `Exam_WebPage` ;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -- -----------------------------------------------------
/*!40101 SET NAMES utf8mb4 */; -- Table `Exam_WebPage`.`User`
-- -----------------------------------------------------
-- CREATE TABLE IF NOT EXISTS `Exam_WebPage`.`User` (
-- Database: `webapp` `User_id` INT NOT NULL AUTO_INCREMENT,
-- `Email` VARCHAR(45) NOT NULL,
`password_hashed` VARCHAR(45) NOT NULL,
-- -------------------------------------------------------- `is_verified` TINYINT NOT NULL,
`created_at` DATETIME NOT NULL,
-- PRIMARY KEY (`User_id`),
-- Table structure for table `book` UNIQUE INDEX `User_id_UNIQUE` (`User_id` ASC) VISIBLE)
-- ENGINE = InnoDB;
CREATE TABLE `book` (
`id` int(10) UNSIGNED NOT NULL, -- -----------------------------------------------------
`owner` int(10) UNSIGNED NOT NULL, -- Table `Exam_WebPage`.`Department`
`title` varchar(80) NOT NULL, -- -----------------------------------------------------
`author` varchar(80) NOT NULL CREATE TABLE IF NOT EXISTS `Exam_WebPage`.`Department` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; `idDepartment` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
-- -------------------------------------------------------- PRIMARY KEY (`idDepartment`),
UNIQUE INDEX `idDepartment_UNIQUE` (`idDepartment` ASC) VISIBLE)
-- ENGINE = InnoDB;
-- Table structure for table `loan`
--
-- -----------------------------------------------------
CREATE TABLE `loan` ( -- Table `Exam_WebPage`.`Professor/Admin`
`id_user` int(10) UNSIGNED NOT NULL, -- -----------------------------------------------------
`id_book` int(10) UNSIGNED NOT NULL, CREATE TABLE IF NOT EXISTS `Exam_WebPage`.`Professor/Admin` (
`status` enum('reserved','started','ended','') NOT NULL, `idProfessor/Admin` INT NOT NULL AUTO_INCREMENT,
`start` date NOT NULL, `Name` VARCHAR(45) NOT NULL,
`end` date NOT NULL `Department_id` INT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; PRIMARY KEY (`idProfessor/Admin`),
UNIQUE INDEX `idProfessor/Admin_UNIQUE` (`idProfessor/Admin` ASC) VISIBLE)
-- -------------------------------------------------------- ENGINE = InnoDB;
--
-- Table structure for table `user` -- -----------------------------------------------------
-- -- Table `Exam_WebPage`.`Course`
-- -----------------------------------------------------
CREATE TABLE `user` ( CREATE TABLE IF NOT EXISTS `Exam_WebPage`.`Course` (
`id` int(10) UNSIGNED NOT NULL, `idCourse` INT NOT NULL AUTO_INCREMENT,
`email` varchar(50) NOT NULL, `Coursecode` VARCHAR(45) NOT NULL,
`password` varchar(256) NOT NULL, `CourseName` VARCHAR(45) NOT NULL,
`role` tinyint(3) UNSIGNED NOT NULL `Department_id` INT NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; UNIQUE INDEX `idCourse_UNIQUE` (`idCourse` ASC) VISIBLE,
PRIMARY KEY (`idCourse`),
-- INDEX `Department_id_idx` (`Department_id` ASC) VISIBLE,
-- Indexes for dumped tables CONSTRAINT `Department_id`
-- FOREIGN KEY (`Department_id`)
REFERENCES `Exam_WebPage`.`Department` (`idDepartment`)
-- ON DELETE NO ACTION
-- Indexes for table `book` ON UPDATE NO ACTION)
-- ENGINE = InnoDB;
ALTER TABLE `book`
ADD PRIMARY KEY (`id`),
ADD KEY `owner` (`owner`); -- -----------------------------------------------------
-- Table `Exam_WebPage`.`Exam`
-- -- -----------------------------------------------------
-- Indexes for table `loan` CREATE TABLE IF NOT EXISTS `Exam_WebPage`.`Exam` (
-- `idExam` INT NOT NULL AUTO_INCREMENT,
ALTER TABLE `loan` `idcourse` INT NOT NULL,
ADD KEY `id_book` (`id_book`), `IdAdmin` INT NOT NULL,
ADD KEY `id_user` (`id_user`); `academic_year` INT NOT NULL,
`Upload_Date` DATETIME NOT NULL,
-- `Filepath` VARCHAR(45) NOT NULL,
-- Indexes for table `user` PRIMARY KEY (`idExam`),
-- UNIQUE INDEX `idExam_UNIQUE` (`idExam` ASC) VISIBLE,
ALTER TABLE `user` INDEX `idcourse_idx` (`idcourse` ASC) VISIBLE,
ADD PRIMARY KEY (`id`); INDEX `idAdmin_idx` (`IdAdmin` ASC) VISIBLE,
CONSTRAINT `idcourse`
-- FOREIGN KEY (`idcourse`)
-- Constraints for dumped tables REFERENCES `Exam_WebPage`.`Course` (`idCourse`)
-- ON DELETE NO ACTION
ON UPDATE NO ACTION,
-- CONSTRAINT `idAdmin`
-- Constraints for table `book` FOREIGN KEY (`IdAdmin`)
-- REFERENCES `Exam_WebPage`.`Professor/Admin` (`idProfessor/Admin`)
ALTER TABLE `book` ON DELETE NO ACTION
ADD CONSTRAINT `book_ibfk_1` FOREIGN KEY (`owner`) REFERENCES `user` (`id`); ON UPDATE NO ACTION)
ENGINE = InnoDB;
--
-- Constraints for table `loan`
-- -- -----------------------------------------------------
ALTER TABLE `loan` -- Table `Exam_WebPage`.`UseVerificationRequest`
ADD CONSTRAINT `loan_ibfk_1` FOREIGN KEY (`id_book`) REFERENCES `book` (`id`), -- -----------------------------------------------------
ADD CONSTRAINT `loan_ibfk_2` FOREIGN KEY (`id_user`) REFERENCES `user` (`id`); CREATE TABLE IF NOT EXISTS `Exam_WebPage`.`UseVerificationRequest` (
COMMIT; `idUseVerificationRequest` INT NOT NULL AUTO_INCREMENT,
`User_id` INT NOT NULL,
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; `requested_at` DATETIME NOT NULL,
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; `Status` ENUM("Accepted", "Rejected", "Pending") NOT NULL,
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; `Admin_id` INT NOT NULL,
\ No newline at end of file `handled_at` DATETIME NOT NULL,
PRIMARY KEY (`idUseVerificationRequest`),
UNIQUE INDEX `idUseVerificationRequest_UNIQUE` (`idUseVerificationRequest` ASC) VISIBLE,
INDEX `user_id_idx` (`User_id` ASC) VISIBLE,
INDEX `admin_id_idx` (`Admin_id` ASC) VISIBLE,
CONSTRAINT `user_id`
FOREIGN KEY (`User_id`)
REFERENCES `Exam_WebPage`.`User` (`User_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `admin_id`
FOREIGN KEY (`Admin_id`)
REFERENCES `Exam_WebPage`.`Professor/Admin` (`idProfessor/Admin`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `Exam_WebPage`.`Report`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Exam_WebPage`.`Report` (
`idReport` INT NOT NULL AUTO_INCREMENT,
`exam_id` INT NOT NULL,
`submitted_by_user_id` INT NOT NULL,
`status` ENUM("Graded", "Pending") NOT NULL,
`created_at` DATETIME NOT NULL,
PRIMARY KEY (`idReport`),
UNIQUE INDEX `idReport_UNIQUE` (`idReport` ASC) VISIBLE,
INDEX `exam_id_idx` (`exam_id` ASC) VISIBLE,
INDEX `reported_by_user_id_idx` (`submitted_by_user_id` ASC) VISIBLE,
CONSTRAINT `exam_id`
FOREIGN KEY (`exam_id`)
REFERENCES `Exam_WebPage`.`Exam` (`idExam`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `submitted_by_user_id`
FOREIGN KEY (`submitted_by_user_id`)
REFERENCES `Exam_WebPage`.`User` (`User_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment