... | ... | @@ -26,7 +26,7 @@ A partir dos resultados obtidos, fizemos a seguinte escolha: |
|
|
<h2><b>Entidades: </b></h2>
|
|
|
<p><b>user: </b>Como o sistema de login será utilizando login com o Google, armazenaremos somente o email do usuario (PK, para poder relaciona-lo com outras entidades), nome e foto de perfil.</p>
|
|
|
<p><b>movie: </b>De acordo com as definicões retiradas das reuniões com os stakeholders, sobre filmes é necessário armazenar: título, título original, sinopse, crítica, curador que botou o filme no sistema, ano de lançamento, duração e o path para o banner do filme. Além disso também estamos utilizando um idFilme como PK.</p>
|
|
|
<p><b>achievement: </b>De acordo com as definicões retiradas das reuniões com os stakeholders, sobre conquistas é necessário armazenar: titulo, descricao, e imagem da conqusita. Além disso também estamos usando um id como PK e armazenando a meta que o usuário precisa alcançar para obter a conquista.</p>
|
|
|
<p><b>achievement: </b>De acordo com as definicões retiradas das reuniões com os stakeholders, sobre conquistas é necessário armazenar: titulo, descricao, e imagem da conqusita. Além disso também estamos usando um id como PK, armazenando a meta que o usuário precisa alcançar para obter a conquista e o id da tag caso a conquista seja com base na mesma.</p>
|
|
|
<p><b>tag: </b>De acordo com as definicões retiradas das reuniões com os stakeholders, sobre tags é necessário armazenar: somente o seu nome, mas também utilizamos um ID como PK.</p>
|
|
|
<p><b>plataform: </b>De acordo com as definicões retiradas das reuniões com os stakeholders, sobre plataforma é necessário armazenar: somente o seu nome, mas também utilizamos um ID como PK.</p>
|
|
|
<p><b>actor: </b>De acordo com as definicões retiradas das reuniões com os stakeholders, sobre plataforma é necessário armazenar: somente o seu nome, mas também utilizamos um ID como PK.</p>
|
... | ... | @@ -44,182 +44,258 @@ A partir dos resultados obtidos, fizemos a seguinte escolha: |
|
|
<p><b>user_movie: </b> Entidade de relacionamento feita para armazenar os filmes selecionados pelo usuário, linkando o idFilme com idUsuario e ainda armazenando o status referente à definição do relacionamento (já vi, quero assistir, etc.).</p>
|
|
|
<h3><b>Sobre atores: </b></h3>
|
|
|
<p><b>cast: </b> Entidade de relacionamento feita para armazenar os atores e diretores vinculados ao filme em questao.</p>
|
|
|
<h3><b>Sobre conquistas: </b></h3>
|
|
|
<p><b>achievement_movie: </b> Entidade de relacionamento feita para armazenar os filmes relacionadios à uma conquista específica.</p>
|
|
|
<p><b>achievement_tag: </b> Entidade de relacionamento feita para armazenar as tags relacionadas à uma conquista específica.</p>
|
|
|
<h2>Script SQL gerado a partir do modelo lógico (astah): </h2>
|
|
|
|
|
|
~~~sql
|
|
|
CREATE TABLE achievement (
|
|
|
idAchievement INT NOT NULL,
|
|
|
title VARCHAR(100) NOT NULL,
|
|
|
description VARCHAR(200) NOT NULL,
|
|
|
pathImage VARCHAR(100) NOT NULL,
|
|
|
targetScore INT NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE achievement ADD CONSTRAINT PK_achievement PRIMARY KEY (idAchievement);
|
|
|
|
|
|
|
|
|
CREATE TABLE actor (
|
|
|
idActor INT NOT NULL,
|
|
|
name VARCHAR(100)
|
|
|
);
|
|
|
|
|
|
ALTER TABLE actor ADD CONSTRAINT PK_actor PRIMARY KEY (idActor);
|
|
|
|
|
|
|
|
|
CREATE TABLE plataform (
|
|
|
idPlataform INT NOT NULL,
|
|
|
name VARCHAR(100) NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE plataform ADD CONSTRAINT PK_plataform PRIMARY KEY (idPlataform);
|
|
|
|
|
|
|
|
|
CREATE TABLE tag (
|
|
|
idTag INT NOT NULL,
|
|
|
name VARCHAR(100) NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE tag ADD CONSTRAINT PK_tag PRIMARY KEY (idTag);
|
|
|
|
|
|
|
|
|
CREATE TABLE user (
|
|
|
idUser VARCHAR(100) NOT NULL,
|
|
|
name VARCHAR(100) NOT NULL,
|
|
|
photoPath VARCHAR(100) NOT NULL,
|
|
|
randomness NUMERIC(3)
|
|
|
);
|
|
|
|
|
|
ALTER TABLE user ADD CONSTRAINT PK_user PRIMARY KEY (idUser);
|
|
|
|
|
|
|
|
|
CREATE TABLE user_achievement (
|
|
|
idUser VARCHAR(100) NOT NULL,
|
|
|
idAchievement INT NOT NULL,
|
|
|
currentScore INT NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE user_achievement ADD CONSTRAINT PK_user_achievement PRIMARY KEY (idUser,idAchievement);
|
|
|
|
|
|
|
|
|
CREATE TABLE achievement_tag (
|
|
|
idAchievement INT NOT NULL,
|
|
|
idTag INT NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE achievement_tag ADD CONSTRAINT PK_achievement_tag PRIMARY KEY (idAchievement,idTag);
|
|
|
|
|
|
|
|
|
CREATE TABLE movie (
|
|
|
idMovie INT NOT NULL,
|
|
|
title VARCHAR(100) NOT NULL,
|
|
|
originalTitle VARCHAR(100) NOT NULL,
|
|
|
synopsis VARCHAR(500) NOT NULL,
|
|
|
critic VARCHAR(500) NOT NULL,
|
|
|
curator VARCHAR(50) NOT NULL,
|
|
|
year NCHAR(4) NOT NULL,
|
|
|
pathBanner VARCHAR(100) NOT NULL,
|
|
|
duration INT
|
|
|
);
|
|
|
|
|
|
ALTER TABLE movie ADD CONSTRAINT PK_movie PRIMARY KEY (idMovie);
|
|
|
|
|
|
|
|
|
CREATE TABLE movie_plataform (
|
|
|
idPlataform INT NOT NULL,
|
|
|
idMovie INT NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE movie_plataform ADD CONSTRAINT PK_movie_plataform PRIMARY KEY (idPlataform,idMovie);
|
|
|
|
|
|
|
|
|
CREATE TABLE movie_tag (
|
|
|
idTag INT NOT NULL,
|
|
|
idMovie INT NOT NULL,
|
|
|
super BIT(1) NOT NULL,
|
|
|
weight INT NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE movie_tag ADD CONSTRAINT PK_movie_tag PRIMARY KEY (idTag,idMovie);
|
|
|
|
|
|
|
|
|
CREATE TABLE preference_plataform (
|
|
|
idUser VARCHAR(100) NOT NULL,
|
|
|
idPlataform INT NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE preference_plataform ADD CONSTRAINT PK_preference_plataform PRIMARY KEY (idUser,idPlataform);
|
|
|
|
|
|
|
|
|
CREATE TABLE preference_tag (
|
|
|
idUser VARCHAR(100) NOT NULL,
|
|
|
idTag INT NOT NULL,
|
|
|
pontuacaoTotal INT
|
|
|
);
|
|
|
|
|
|
ALTER TABLE preference_tag ADD CONSTRAINT PK_preference_tag PRIMARY KEY (idUser,idTag);
|
|
|
|
|
|
|
|
|
CREATE TABLE user_movie (
|
|
|
idUser VARCHAR(100) NOT NULL,
|
|
|
idMovie INT NOT NULL,
|
|
|
status BIT(2) NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE user_movie ADD CONSTRAINT PK_user_movie PRIMARY KEY (idUser,idMovie);
|
|
|
|
|
|
|
|
|
CREATE TABLE achievement_movie (
|
|
|
idMovie INT NOT NULL,
|
|
|
idAchievement INT NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE achievement_movie ADD CONSTRAINT PK_achievement_movie PRIMARY KEY (idMovie,idAchievement);
|
|
|
|
|
|
|
|
|
CREATE TABLE cast (
|
|
|
idMovie INT NOT NULL,
|
|
|
idActor INT NOT NULL,
|
|
|
director BIT(1)
|
|
|
);
|
|
|
|
|
|
ALTER TABLE cast ADD CONSTRAINT PK_cast PRIMARY KEY (idMovie,idActor);
|
|
|
|
|
|
|
|
|
ALTER TABLE user_achievement ADD CONSTRAINT FK_user_achievement_0 FOREIGN KEY (idUser) REFERENCES user (idUser);
|
|
|
ALTER TABLE user_achievement ADD CONSTRAINT FK_user_achievement_1 FOREIGN KEY (idAchievement) REFERENCES achievement (idAchievement);
|
|
|
|
|
|
|
|
|
ALTER TABLE achievement_tag ADD CONSTRAINT FK_achievement_tag_0 FOREIGN KEY (idAchievement) REFERENCES achievement (idAchievement);
|
|
|
ALTER TABLE achievement_tag ADD CONSTRAINT FK_achievement_tag_1 FOREIGN KEY (idTag) REFERENCES tag (idTag);
|
|
|
|
|
|
|
|
|
ALTER TABLE movie_plataform ADD CONSTRAINT FK_movie_plataform_0 FOREIGN KEY (idPlataform) REFERENCES plataform (idPlataform);
|
|
|
ALTER TABLE movie_plataform ADD CONSTRAINT FK_movie_plataform_1 FOREIGN KEY (idMovie) REFERENCES movie (idMovie);
|
|
|
|
|
|
|
|
|
ALTER TABLE movie_tag ADD CONSTRAINT FK_movie_tag_0 FOREIGN KEY (idTag) REFERENCES tag (idTag);
|
|
|
ALTER TABLE movie_tag ADD CONSTRAINT FK_movie_tag_1 FOREIGN KEY (idMovie) REFERENCES movie (idMovie);
|
|
|
|
|
|
|
|
|
ALTER TABLE preference_plataform ADD CONSTRAINT FK_preference_plataform_0 FOREIGN KEY (idUser) REFERENCES user (idUser);
|
|
|
ALTER TABLE preference_plataform ADD CONSTRAINT FK_preference_plataform_1 FOREIGN KEY (idPlataform) REFERENCES plataform (idPlataform);
|
|
|
|
|
|
|
|
|
ALTER TABLE preference_tag ADD CONSTRAINT FK_preference_tag_0 FOREIGN KEY (idUser) REFERENCES user (idUser);
|
|
|
ALTER TABLE preference_tag ADD CONSTRAINT FK_preference_tag_1 FOREIGN KEY (idTag) REFERENCES tag (idTag);
|
|
|
|
|
|
|
|
|
ALTER TABLE user_movie ADD CONSTRAINT FK_user_movie_0 FOREIGN KEY (idUser) REFERENCES user (idUser);
|
|
|
ALTER TABLE user_movie ADD CONSTRAINT FK_user_movie_1 FOREIGN KEY (idMovie) REFERENCES movie (idMovie);
|
|
|
|
|
|
|
|
|
ALTER TABLE achievement_movie ADD CONSTRAINT FK_achievement_movie_0 FOREIGN KEY (idMovie) REFERENCES movie (idMovie);
|
|
|
ALTER TABLE achievement_movie ADD CONSTRAINT FK_achievement_movie_1 FOREIGN KEY (idAchievement) REFERENCES achievement (idAchievement);
|
|
|
|
|
|
|
|
|
ALTER TABLE cast ADD CONSTRAINT FK_cast_0 FOREIGN KEY (idMovie) REFERENCES movie (idMovie);
|
|
|
ALTER TABLE cast ADD CONSTRAINT FK_cast_1 FOREIGN KEY (idActor) REFERENCES actor (idActor);
|
|
|
-- -----------------------------------------------------
|
|
|
-- Schema cine_clube
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE SCHEMA IF NOT EXISTS `cine_clube` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;
|
|
|
USE `cine_clube` ;
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`tag`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`tag` (
|
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
|
`name` VARCHAR(255) NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
AUTO_INCREMENT = 2038
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`achievement`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`achievement` (
|
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
|
`title` VARCHAR(255) NOT NULL,
|
|
|
`description` VARCHAR(255) NOT NULL,
|
|
|
`pathImage` VARCHAR(255) NOT NULL,
|
|
|
`targetScore` INT NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
`tagId` INT NULL DEFAULT NULL,
|
|
|
PRIMARY KEY (`id`),
|
|
|
CONSTRAINT `FK_7efd7420481a4d3cc3ee6649223`
|
|
|
FOREIGN KEY (`tagId`)
|
|
|
REFERENCES `cine_clube`.`tag` (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
AUTO_INCREMENT = 8
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE INDEX `FK_7efd7420481a4d3cc3ee6649223` ON `cine_clube`.`achievement` (`tagId` ASC) VISIBLE;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`actor`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`actor` (
|
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
|
`name` VARCHAR(255) NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
AUTO_INCREMENT = 91
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`movie`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`movie` (
|
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
|
`title` VARCHAR(255) NOT NULL,
|
|
|
`originalTitle` VARCHAR(255) NOT NULL,
|
|
|
`synopsis` TEXT NOT NULL,
|
|
|
`critic` TEXT NOT NULL,
|
|
|
`curator` VARCHAR(255) NOT NULL,
|
|
|
`year` CHAR(4) NOT NULL,
|
|
|
`pathBanner` VARCHAR(255) NOT NULL,
|
|
|
`duration` INT NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
AUTO_INCREMENT = 16
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`cast`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`cast` (
|
|
|
`actorId` INT NOT NULL,
|
|
|
`movieId` INT NOT NULL,
|
|
|
`director` TINYINT NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`actorId`, `movieId`),
|
|
|
CONSTRAINT `FK_d3ec511ff2f2564f167064a2ee0`
|
|
|
FOREIGN KEY (`actorId`)
|
|
|
REFERENCES `cine_clube`.`actor` (`id`),
|
|
|
CONSTRAINT `FK_dcacf1ce3d9cc81bc6427f0f6b3`
|
|
|
FOREIGN KEY (`movieId`)
|
|
|
REFERENCES `cine_clube`.`movie` (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE INDEX `FK_dcacf1ce3d9cc81bc6427f0f6b3` ON `cine_clube`.`cast` (`movieId` ASC) VISIBLE;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`platform`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`platform` (
|
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
|
`name` VARCHAR(255) NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
AUTO_INCREMENT = 3
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`movie_platform`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`movie_platform` (
|
|
|
`platform` INT NOT NULL,
|
|
|
`movie` INT NOT NULL,
|
|
|
PRIMARY KEY (`platform`, `movie`),
|
|
|
CONSTRAINT `FK_3cbb19e5cd833475a475fe41c33`
|
|
|
FOREIGN KEY (`platform`)
|
|
|
REFERENCES `cine_clube`.`platform` (`id`)
|
|
|
ON DELETE CASCADE,
|
|
|
CONSTRAINT `FK_4d3c4c6ee96613bc4ef3673e771`
|
|
|
FOREIGN KEY (`movie`)
|
|
|
REFERENCES `cine_clube`.`movie` (`id`)
|
|
|
ON DELETE CASCADE)
|
|
|
ENGINE = InnoDB
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE INDEX `IDX_3cbb19e5cd833475a475fe41c3` ON `cine_clube`.`movie_platform` (`platform` ASC) VISIBLE;
|
|
|
|
|
|
CREATE INDEX `IDX_4d3c4c6ee96613bc4ef3673e77` ON `cine_clube`.`movie_platform` (`movie` ASC) VISIBLE;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`movie_tag`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`movie_tag` (
|
|
|
`tagId` INT NOT NULL,
|
|
|
`movieId` INT NOT NULL,
|
|
|
`super` TINYINT NOT NULL,
|
|
|
`weight` INT NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`tagId`, `movieId`),
|
|
|
CONSTRAINT `FK_31fc580c1847949cb41e65a34e0`
|
|
|
FOREIGN KEY (`tagId`)
|
|
|
REFERENCES `cine_clube`.`tag` (`id`),
|
|
|
CONSTRAINT `FK_c5c695f219479d1f627143836d0`
|
|
|
FOREIGN KEY (`movieId`)
|
|
|
REFERENCES `cine_clube`.`movie` (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE INDEX `FK_c5c695f219479d1f627143836d0` ON `cine_clube`.`movie_tag` (`movieId` ASC) VISIBLE;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`user`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`user` (
|
|
|
`id` VARCHAR(255) NOT NULL,
|
|
|
`name` VARCHAR(255) NOT NULL,
|
|
|
`photoPath` VARCHAR(255) NOT NULL,
|
|
|
`randomness` INT NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`user_achievement`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`user_achievement` (
|
|
|
`userId` VARCHAR(255) NOT NULL,
|
|
|
`achievementId` INT NOT NULL,
|
|
|
`currentScore` INT NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`userId`, `achievementId`),
|
|
|
CONSTRAINT `FK_2a418515c335cab7c5ba70c28b3`
|
|
|
FOREIGN KEY (`userId`)
|
|
|
REFERENCES `cine_clube`.`user` (`id`),
|
|
|
CONSTRAINT `FK_843ecd1965f1aac694875674a18`
|
|
|
FOREIGN KEY (`achievementId`)
|
|
|
REFERENCES `cine_clube`.`achievement` (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE INDEX `FK_843ecd1965f1aac694875674a18` ON `cine_clube`.`user_achievement` (`achievementId` ASC) VISIBLE;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`user_movie`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`user_movie` (
|
|
|
`userId` VARCHAR(255) NOT NULL,
|
|
|
`movieId` INT NOT NULL,
|
|
|
`status` VARCHAR(255) NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`userId`, `movieId`),
|
|
|
CONSTRAINT `FK_13836cd6ae56580075e1bd33967`
|
|
|
FOREIGN KEY (`userId`)
|
|
|
REFERENCES `cine_clube`.`user` (`id`),
|
|
|
CONSTRAINT `FK_3e731d371b40a498f72b3e57d9d`
|
|
|
FOREIGN KEY (`movieId`)
|
|
|
REFERENCES `cine_clube`.`movie` (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE INDEX `FK_3e731d371b40a498f72b3e57d9d` ON `cine_clube`.`user_movie` (`movieId` ASC) VISIBLE;
|
|
|
|
|
|
|
|
|
-- -----------------------------------------------------
|
|
|
-- Table `cine_clube`.`user_tag`
|
|
|
-- -----------------------------------------------------
|
|
|
CREATE TABLE IF NOT EXISTS `cine_clube`.`user_tag` (
|
|
|
`userId` VARCHAR(255) NOT NULL,
|
|
|
`tagId` INT NOT NULL,
|
|
|
`totalPoint` INT NOT NULL,
|
|
|
`created_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|
|
`updated_At` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
|
|
|
PRIMARY KEY (`userId`, `tagId`),
|
|
|
CONSTRAINT `FK_7cf25d8a11ccc18f04cbd8cb46c`
|
|
|
FOREIGN KEY (`userId`)
|
|
|
REFERENCES `cine_clube`.`user` (`id`),
|
|
|
CONSTRAINT `FK_d1c8261be4e02dc1df64636250c`
|
|
|
FOREIGN KEY (`tagId`)
|
|
|
REFERENCES `cine_clube`.`tag` (`id`))
|
|
|
ENGINE = InnoDB
|
|
|
DEFAULT CHARACTER SET = utf8mb4
|
|
|
COLLATE = utf8mb4_0900_ai_ci;
|
|
|
|
|
|
CREATE INDEX `FK_d1c8261be4e02dc1df64636250c` ON `cine_clube`.`user_tag` (`tagId` ASC) VISIBLE;
|
|
|
~~~ |
|
|
\ No newline at end of file |