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
Hide 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 ...@@ -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"> <img src="tutorial-imagens/ModelagemLogicaCineClube.png" tittle="CineClube Modelagem Lógica">
<h2><b>Entidades: </b></h2> <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>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>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>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>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> <h2><b>Entidades de relacionamento: </b></h2>
<h3>Sobre filtros: </h3> <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_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>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> <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_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> <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> <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>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>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>
<p><b>toWatch: </b> Entidade de relacionamento feita para armazenar os filmes que o usuário quer ver, linkando o idFilme com idUsuario.</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> <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_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> <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 ( ...@@ -45,6 +47,14 @@ CREATE TABLE achivievement (
ALTER TABLE achivievement ADD CONSTRAINT PK_achivievement PRIMARY KEY (idAchievement); 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 ( CREATE TABLE plataform (
idPlataform INT NOT NULL, idPlataform INT NOT NULL,
name VARCHAR(100) NOT NULL name VARCHAR(100) NOT NULL
...@@ -64,7 +74,7 @@ ALTER TABLE tag ADD CONSTRAINT PK_tag PRIMARY KEY (idTag); ...@@ -64,7 +74,7 @@ ALTER TABLE tag ADD CONSTRAINT PK_tag PRIMARY KEY (idTag);
CREATE TABLE user ( CREATE TABLE user (
idUser VARCHAR(100) NOT NULL, idUser VARCHAR(100) NOT NULL,
name VARCHAR(100) NOT NULL, name VARCHAR(100) NOT NULL,
photoPath VARCHAR(10) NOT NULL, photoPath VARCHAR(100) NOT NULL,
randomness NUMERIC(3) randomness NUMERIC(3)
); );
...@@ -94,9 +104,10 @@ CREATE TABLE movie ( ...@@ -94,9 +104,10 @@ CREATE TABLE movie (
originalTitle VARCHAR(100) NOT NULL, originalTitle VARCHAR(100) NOT NULL,
synopsis VARCHAR(500) NOT NULL, synopsis VARCHAR(500) NOT NULL,
critic VARCHAR(500) NOT NULL, critic VARCHAR(500) NOT NULL,
curator VARCHAR(50) NOT NULL, curator VARCHAR(50) NOT NULL,
year NCHAR(4) 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); ALTER TABLE movie ADD CONSTRAINT PK_movie PRIMARY KEY (idMovie);
...@@ -136,29 +147,30 @@ CREATE TABLE preference_tag ( ...@@ -136,29 +147,30 @@ CREATE TABLE preference_tag (
ALTER TABLE preference_tag ADD CONSTRAINT PK_preference_tag PRIMARY KEY (idUser,idTag); 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, 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 ( CREATE TABLE achievement_movie (
idUser VARCHAR(100) NOT NULL,
idMovie INT NOT NULL, 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, 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); 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 ...@@ -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 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 user_movie ADD CONSTRAINT FK_user_movie_0 FOREIGN KEY (idUser) REFERENCES user (idUser);
ALTER TABLE toWatch ADD CONSTRAINT FK_toWatch_1 FOREIGN KEY (idMovie) REFERENCES movie (idMovie); ALTER TABLE user_movie ADD CONSTRAINT FK_user_movie_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 achievement_movie ADD CONSTRAINT FK_achievement_movie_0 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 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