... | ... | @@ -13,23 +13,25 @@ Aqui deve ser explicado com modelos e explicações como o Banco de Dados foi co |
|
|
<img src="tutorial-imagens/ModelagemLogicaCineClube.png" tittle="CineClube Modelagem Lógica">
|
|
|
<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, e o path para o banner do filme. Além disso também estamos utilizando um idFilme como PK.</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>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>
|
|
|
|
|
|
<h2><b>Entidades de relacionamento: </b></h2>
|
|
|
<h3>Sobre filtros: </h3>
|
|
|
<p><b>preference_plataform: </b>Linka o email do usuario com o id da plataforma (as 2 PK), para fazer a relacao de N x N sobre filtrar os filmes por plataforma para um usuário especifico.</p>
|
|
|
<p><b>preference_tag: </b>linka o email do usuario com o id da tag (as 2 PK), para fazer a relacao de N x N sobre filtrar os filmes por tag para um usuário específico.</p>
|
|
|
<p><b>Aleatoridade no filtro: </b> Deixamos a taxa de aleatoriedade dos filtros na propria entidade usuário.</p>
|
|
|
<h3>Sobre filmes: </h3>
|
|
|
<h3><b>Sobre filmes: </b> </h3>
|
|
|
<p><b>movie_plataform: </b> Entidade de relacionamento que linka o idFilme com idPlataforma, para fazer a relação de N x N entre plataformas nas quais o filme específico está disponível.</p>
|
|
|
<p><b>movie_tag: </b> Entidade de relacionamento que linka o idFilme com idTag, para fazer a relação de N x N entre tags que um filme específico possui.</p>
|
|
|
<h3><b>Sobre usuarios: </b></h3>
|
|
|
<p><b>user_achievement: </b> Entidade de relacionamento que linka o id usuario a id conquista, serve tanto para armazenar as conquistas adquiridas quanto o progresso de conquistas nao adquiridas, utilizando metaPontuacao<=atualPontuacao.</p>
|
|
|
<p><b>watched: </b> Entidade de relacionamento feita para armazenar os filmes ja vistos do usuário, linkando o idFilme com idUsuario e ainda armazenando em um booleano se o usuário gostou do filme ou não.</p>
|
|
|
<p><b>toWatch: </b> Entidade de relacionamento feita para armazenar os filmes que o usuário quer ver, linkando o idFilme com idUsuario.</p>
|
|
|
<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>
|
... | ... | @@ -45,6 +47,14 @@ CREATE TABLE achivievement ( |
|
|
ALTER TABLE achivievement ADD CONSTRAINT PK_achivievement 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
|
... | ... | @@ -64,7 +74,7 @@ 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(10) NOT NULL,
|
|
|
photoPath VARCHAR(100) NOT NULL,
|
|
|
randomness NUMERIC(3)
|
|
|
);
|
|
|
|
... | ... | @@ -94,9 +104,10 @@ CREATE TABLE movie ( |
|
|
originalTitle VARCHAR(100) NOT NULL,
|
|
|
synopsis VARCHAR(500) NOT NULL,
|
|
|
critic VARCHAR(500) NOT NULL,
|
|
|
curator VARCHAR(50) NOT NULL,
|
|
|
curator VARCHAR(50) NOT NULL,
|
|
|
year NCHAR(4) NOT NULL,
|
|
|
pathBanner VARCHAR(100) NOT NULL
|
|
|
pathBanner VARCHAR(100) NOT NULL,
|
|
|
duration INT
|
|
|
);
|
|
|
|
|
|
ALTER TABLE movie ADD CONSTRAINT PK_movie PRIMARY KEY (idMovie);
|
... | ... | @@ -136,29 +147,30 @@ CREATE TABLE preference_tag ( |
|
|
ALTER TABLE preference_tag ADD CONSTRAINT PK_preference_tag PRIMARY KEY (idUser,idTag);
|
|
|
|
|
|
|
|
|
CREATE TABLE toWatch (
|
|
|
CREATE TABLE user_movie (
|
|
|
idUser VARCHAR(100) NOT NULL,
|
|
|
idMovie INT NOT NULL
|
|
|
idMovie INT NOT NULL,
|
|
|
status BIT(2) NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE toWatch ADD CONSTRAINT PK_toWatch PRIMARY KEY (idUser,idMovie);
|
|
|
ALTER TABLE user_movie ADD CONSTRAINT PK_user_movie PRIMARY KEY (idUser,idMovie);
|
|
|
|
|
|
|
|
|
CREATE TABLE watched (
|
|
|
idUser VARCHAR(100) NOT NULL,
|
|
|
CREATE TABLE achievement_movie (
|
|
|
idMovie INT NOT NULL,
|
|
|
liked BIT(1) NOT NULL
|
|
|
idAchievement INT NOT NULL
|
|
|
);
|
|
|
|
|
|
ALTER TABLE watched ADD CONSTRAINT PK_watched PRIMARY KEY (idUser,idMovie);
|
|
|
ALTER TABLE achievement_movie ADD CONSTRAINT PK_achievement_movie PRIMARY KEY (idMovie,idAchievement);
|
|
|
|
|
|
|
|
|
CREATE TABLE achievement_movie (
|
|
|
CREATE TABLE cast (
|
|
|
idMovie INT NOT NULL,
|
|
|
idAchievement INT NOT NULL
|
|
|
idActor INT NOT NULL,
|
|
|
director BIT(1)
|
|
|
);
|
|
|
|
|
|
ALTER TABLE achievement_movie ADD CONSTRAINT PK_achievement_movie PRIMARY KEY (idMovie,idAchievement);
|
|
|
ALTER TABLE cast ADD CONSTRAINT PK_cast PRIMARY KEY (idMovie,idActor);
|
|
|
|
|
|
|
|
|
ALTER TABLE user_achiviement ADD CONSTRAINT FK_user_achiviement_0 FOREIGN KEY (idUser) REFERENCES user (idUser);
|
... | ... | @@ -185,18 +197,13 @@ ALTER TABLE preference_tag ADD CONSTRAINT FK_preference_tag_0 FOREIGN KEY (idUse |
|
|
ALTER TABLE preference_tag ADD CONSTRAINT FK_preference_tag_1 FOREIGN KEY (idTag) REFERENCES tag (idTag);
|
|
|
|
|
|
|
|
|
ALTER TABLE toWatch ADD CONSTRAINT FK_toWatch_0 FOREIGN KEY (idUser) REFERENCES user (idUser);
|
|
|
ALTER TABLE toWatch ADD CONSTRAINT FK_toWatch_1 FOREIGN KEY (idMovie) REFERENCES movie (idMovie);
|
|
|
|
|
|
|
|
|
ALTER TABLE watched ADD CONSTRAINT FK_watched_0 FOREIGN KEY (idUser) REFERENCES user (idUser);
|
|
|
ALTER TABLE watched ADD CONSTRAINT FK_watched_1 FOREIGN KEY (idMovie) REFERENCES movie (idMovie);
|
|
|
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 achivievement (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); |
|
|
\ No newline at end of file |