213 lines
8.2 KiB
SQL
213 lines
8.2 KiB
SQL
-- MySQL Script generated by MySQL Workbench
|
|
-- Thu Apr 17 17:43:11 2025
|
|
-- Model: New Model Version: 1.0
|
|
-- 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 dbmaster
|
|
-- -----------------------------------------------------
|
|
|
|
-- -----------------------------------------------------
|
|
-- Schema dbmaster
|
|
-- -----------------------------------------------------
|
|
CREATE SCHEMA IF NOT EXISTS `dbmaster` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;
|
|
USE `dbmaster` ;
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `dbmaster`.`endpoints`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `dbmaster`.`endpoints` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`uuid` VARCHAR(255) NOT NULL,
|
|
`route` VARCHAR(255) NOT NULL,
|
|
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`createdBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`deleted` DATETIME NULL DEFAULT NULL,
|
|
`deletedBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE)
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 23
|
|
DEFAULT CHARACTER SET = utf8mb3;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `dbmaster`.`permissions`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `dbmaster`.`permissions` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`uuid` VARCHAR(255) NOT NULL,
|
|
`action` ENUM('GET', 'POST', 'PUT', 'DELETE') NOT NULL,
|
|
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`createdBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`deleted` DATETIME NULL DEFAULT NULL,
|
|
`deletedBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`fk_endpoint` BIGINT NOT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE,
|
|
INDEX `fk_permissions_endpoints1_idx` (`fk_endpoint` ASC) VISIBLE,
|
|
CONSTRAINT `fk_permissions_endpoints1`
|
|
FOREIGN KEY (`fk_endpoint`)
|
|
REFERENCES `dbmaster`.`endpoints` (`id`))
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 49
|
|
DEFAULT CHARACTER SET = utf8mb3;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `dbmaster`.`places`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `dbmaster`.`places` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`uuid` VARCHAR(255) NOT NULL,
|
|
`name` VARCHAR(45) NOT NULL,
|
|
`description` VARCHAR(45) NULL DEFAULT NULL,
|
|
`address` VARCHAR(255) NULL DEFAULT NULL,
|
|
`latitude` DECIMAL(10,7) NOT NULL,
|
|
`longitude` DECIMAL(11,7) NOT NULL,
|
|
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`createdBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`deleted` DATETIME NULL DEFAULT NULL,
|
|
`deletedBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARACTER SET = utf8mb3;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `dbmaster`.`report_types`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `dbmaster`.`report_types` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`uuid` VARCHAR(255) NOT NULL,
|
|
`name` VARCHAR(255) NOT NULL,
|
|
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`createdBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`deleted` DATETIME NULL DEFAULT NULL,
|
|
`deletedBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE,
|
|
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE)
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARACTER SET = utf8mb3;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `dbmaster`.`roles`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `dbmaster`.`roles` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`uuid` VARCHAR(255) NOT NULL,
|
|
`name` VARCHAR(255) NOT NULL,
|
|
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`createdBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`deleted` DATETIME NULL DEFAULT NULL,
|
|
`deletedBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`name_active` VARCHAR(255) GENERATED ALWAYS AS ((case when (`deleted` is null) then `name` else NULL end)) STORED,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE,
|
|
UNIQUE INDEX `name_active_UNIQUE` (`name_active` ASC) VISIBLE)
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 3
|
|
DEFAULT CHARACTER SET = utf8mb3;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `dbmaster`.`roles_has_permissions`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `dbmaster`.`roles_has_permissions` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`uuid` VARCHAR(255) NOT NULL,
|
|
`fk_role` BIGINT NOT NULL,
|
|
`fk_permission` BIGINT NOT NULL,
|
|
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`createdBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`deleted` DATETIME NULL DEFAULT NULL,
|
|
`deletedBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`, `fk_role`, `fk_permission`),
|
|
UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE,
|
|
INDEX `fk_roles_has_permissions_permissions1_idx` (`fk_permission` ASC) VISIBLE,
|
|
INDEX `fk_roles_has_permissions_roles1_idx` (`fk_role` ASC) VISIBLE,
|
|
CONSTRAINT `fk_roles_has_permissions_permissions1`
|
|
FOREIGN KEY (`fk_permission`)
|
|
REFERENCES `dbmaster`.`permissions` (`id`),
|
|
CONSTRAINT `fk_roles_has_permissions_roles1`
|
|
FOREIGN KEY (`fk_role`)
|
|
REFERENCES `dbmaster`.`roles` (`id`))
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 49
|
|
DEFAULT CHARACTER SET = utf8mb3;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `dbmaster`.`users`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `dbmaster`.`users` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`username` VARCHAR(255) NOT NULL,
|
|
`email` VARCHAR(255) NULL DEFAULT NULL,
|
|
`password` VARCHAR(255) NOT NULL,
|
|
`uuid` VARCHAR(255) NOT NULL,
|
|
`fk_role` BIGINT NOT NULL,
|
|
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`createdBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`deleted` DATETIME NULL DEFAULT NULL,
|
|
`deletedBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`username_active` VARCHAR(255) GENERATED ALWAYS AS ((case when (`deleted` is null) then `username` else NULL end)) STORED,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE,
|
|
UNIQUE INDEX `username_active_UNIQUE` (`username_active` ASC) VISIBLE,
|
|
INDEX `fk_user_roles1_idx` (`fk_role` ASC) VISIBLE,
|
|
CONSTRAINT `fk_role`
|
|
FOREIGN KEY (`fk_role`)
|
|
REFERENCES `dbmaster`.`roles` (`id`))
|
|
ENGINE = InnoDB
|
|
AUTO_INCREMENT = 22
|
|
DEFAULT CHARACTER SET = utf8mb3;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
-- Table `dbmaster`.`users_has_places`
|
|
-- -----------------------------------------------------
|
|
CREATE TABLE IF NOT EXISTS `dbmaster`.`users_has_places` (
|
|
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
|
`uuid` VARCHAR(255) NOT NULL,
|
|
`fk_user` BIGINT NOT NULL,
|
|
`fk_place` BIGINT NOT NULL,
|
|
`fk_report_type` BIGINT NOT NULL,
|
|
`rating` INT NOT NULL,
|
|
`description` VARCHAR(255) NULL DEFAULT NULL,
|
|
`created` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`createdBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
`deleted` DATETIME NULL DEFAULT NULL,
|
|
`deletedBy` VARCHAR(255) NULL DEFAULT NULL,
|
|
PRIMARY KEY (`id`, `fk_user`, `fk_place`),
|
|
UNIQUE INDEX `uuid_UNIQUE` (`uuid` ASC) VISIBLE,
|
|
INDEX `fk_users_has_places_places1_idx` (`fk_place` ASC) VISIBLE,
|
|
INDEX `fk_users_has_places_users1_idx` (`fk_user` ASC) VISIBLE,
|
|
INDEX `fk_users_has_places_report_types1_idx` (`fk_report_type` ASC) VISIBLE,
|
|
CONSTRAINT `fk_users_has_places_places1`
|
|
FOREIGN KEY (`fk_place`)
|
|
REFERENCES `dbmaster`.`places` (`id`),
|
|
CONSTRAINT `fk_users_has_places_report_types1`
|
|
FOREIGN KEY (`fk_report_type`)
|
|
REFERENCES `dbmaster`.`report_types` (`id`),
|
|
CONSTRAINT `fk_users_has_places_users1`
|
|
FOREIGN KEY (`fk_user`)
|
|
REFERENCES `dbmaster`.`users` (`id`))
|
|
ENGINE = InnoDB
|
|
DEFAULT CHARACTER SET = utf8mb3;
|
|
|
|
|
|
SET SQL_MODE=@OLD_SQL_MODE;
|
|
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
|
|
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
|