Skip to content

MySQL Foward Engineering v2

gyim1345 edited this page Nov 5, 2020 · 7 revisions
-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
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';

-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema IssueTracker
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema IssueTracker
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `IssueTracker` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
USE `IssueTracker` ;

-- -----------------------------------------------------
-- Table `IssueTracker`.`users`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `IssueTracker`.`users` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NOT NULL,
  `profile_url` VARCHAR(255) NULL DEFAULT NULL,
  `github_id` INT NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 5
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `IssueTracker`.`milestones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `IssueTracker`.`milestones` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255) NOT NULL,
  `description` VARCHAR(255) NULL DEFAULT NULL,
  `due_date` DATETIME NULL DEFAULT NULL,
  `status_open_closed` TINYINT(4) NOT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 3
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `IssueTracker`.`issues`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `IssueTracker`.`issues` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `date` DATETIME NULL DEFAULT NULL,
  `title` VARCHAR(255) NULL DEFAULT NULL,
  `status_open_closed` TINYINT(4) NOT NULL,
  `content` VARCHAR(255) NULL DEFAULT NULL,
  `user_id` INT(11) NOT NULL,
  `milestone_id` INT(11) NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  INDEX `user_id` (`user_id` ASC),
  INDEX `milestone_id` (`milestone_id` ASC),
  CONSTRAINT `issues_ibfk_1`
    FOREIGN KEY (`user_id`)
    REFERENCES `IssueTracker`.`users` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `issues_ibfk_2`
    FOREIGN KEY (`milestone_id`)
    REFERENCES `IssueTracker`.`milestones` (`id`)
    ON DELETE SET NULL
    ON UPDATE CASCADE)
ENGINE = InnoDB
AUTO_INCREMENT = 6
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `IssueTracker`.`assignees`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `IssueTracker`.`assignees` (
  `user_id` INT(11) NOT NULL,
  `issue_id` INT(11) NOT NULL,
  PRIMARY KEY (`user_id`, `issue_id`),
  INDEX `issue_id` (`issue_id` ASC),
  CONSTRAINT `assignees_ibfk_1`
    FOREIGN KEY (`user_id`)
    REFERENCES `IssueTracker`.`users` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `assignees_ibfk_2`
    FOREIGN KEY (`issue_id`)
    REFERENCES `IssueTracker`.`issues` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `IssueTracker`.`comments`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `IssueTracker`.`comments` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `comment` VARCHAR(255) NULL DEFAULT NULL,
  `date` DATETIME NULL DEFAULT NULL,
  `issue_id` INT(11) NOT NULL,
  `user_id` INT(11) NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `issue_id` (`issue_id` ASC),
  INDEX `user_id` (`user_id` ASC),
  CONSTRAINT `comments_ibfk_1`
    FOREIGN KEY (`issue_id`)
    REFERENCES `IssueTracker`.`issues` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `comments_ibfk_2`
    FOREIGN KEY (`user_id`)
    REFERENCES `IssueTracker`.`users` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB
AUTO_INCREMENT = 6
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `IssueTracker`.`labels`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `IssueTracker`.`labels` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NOT NULL,
  `color` VARCHAR(255) NOT NULL,
  `content` VARCHAR(255) NULL DEFAULT NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB
AUTO_INCREMENT = 6
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


-- -----------------------------------------------------
-- Table `IssueTracker`.`issues_has_labels`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `IssueTracker`.`issues_has_labels` (
  `issue_id` INT(11) NOT NULL,
  `label_id` INT(11) NOT NULL,
  PRIMARY KEY (`issue_id`, `label_id`),
  INDEX `label_id` (`label_id` ASC),
  CONSTRAINT `issues_has_labels_ibfk_1`
    FOREIGN KEY (`issue_id`)
    REFERENCES `IssueTracker`.`issues` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE,
  CONSTRAINT `issues_has_labels_ibfk_2`
    FOREIGN KEY (`label_id`)
    REFERENCES `IssueTracker`.`labels` (`id`)
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Clone this wiki locally