Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • C cineclube-wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Cine Clube
  • cineclube-wiki
  • Wiki
  • banco_dados

banco_dados · Changes

Page history
Inclusão dos atores e alteração da user_movie authored Apr 18, 2021 by Augusto César Bottega Agostini's avatar Augusto César Bottega Agostini
Show whitespace changes
Inline Side-by-side
banco_dados.md
View page @ 3b86ce39
......@@ -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)
);
......@@ -96,7 +106,8 @@ CREATE TABLE movie (
critic VARCHAR(500) 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
Clone repository
  • Imagens
    • cineclube cronograma.pdf
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • configuracao
  • gp
  • Home
  • horarios
  • instalacao
  • mockups
  • processo
  • requisitos
  • sprints