Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • I idcare-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
  • Id-Care
  • idcare-wiki
  • Wiki
  • banco_dados

Last edited by Henrique Reis Kops May 04, 2021
Page history

banco_dados

Página Inicial

Página do Banco de Dados

O banco de dados do projeto vai de encontro com a arquitetura de microsserviços definida. Decidimos utilizar o MongoDB visto que, para o nosso contexto, não existiam motivos para utilizar um banco relacional. Isso se deve pelo fato de que os dados que são armazenados na base não possuem relações diretas suficientes. Ainda que escolhêssemos a abordagem relacional, teríamos amarras que dificultariam a escalabilidade da camada de backend, pois para fazer sentido, teríamos somente uma base de dados. Sabendo disso, o MongoDB faz mais sentido por ser extensível, armazenando as informações no formato JSON (JavaScript Object Notation) que é entendido pelas aplicações.

Coleções

O MongoDB, por ser um banco de dados documental, permite com que se criem coleções dos documentos armazenados. Portanto assim o fizemos, com a finalidade de manter o estado da aplicação de forma transacional (OLTP). Assim, para cada microsserviço temos as coleções listadas abaixo.

Voluntários

Coleção voluntários:

{
	Id (hash)
	Name (string)
	Email (string)
	Password (hash)
	Interests (object array) [{ 
		OpportunityId (hash)
		isActive (boolean)
	}]
}

Oportunidades

Coleção oportunidades:

{
	Id (hash)
	InstitutionId (hash)
	Title (string)
	Type (string) -> filtro
	Course (hash array) -> filtro [
		CourseId (hash)
	]
	Description (string)
	Location (object)
}

Coleção localização:

{
	Complement (int)
	Number (int)
	Street (string)
	City (string) 
	State (string)
	Country (string)
}

Coleção curso:

{
	CourseId (hash)
	Name (string)
}

Instituições

Coleção instituições:

{
	Id (hash)
	isValid (boolean)
	Name (string)
	Email (string)
	Password (hash)
	Description (string)
	Location (object)
}

Coleção localização:

{
	Complement (int)
	Number (int)
	Street (string)
	City (string) 
	State (string)
	Country (string)
}
Clone repository
  • Gerência de Projetos
  • Horários
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • banco_dados
  • configuracao
  • estudos_dirigidos
  • Home
  • instalacao
  • mockups
  • requisitos
  • sprints