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)
}