Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • I Idoso Mais 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
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • IDOSO Mais
  • Idoso Mais Wiki
  • Wiki
  • Banco_de_Dados

Banco_de_Dados · Changes

Page history
Update Banco_de_Dados authored Jun 13, 2023 by Vitor Hugo Garcez's avatar Vitor Hugo Garcez
Hide whitespace changes
Inline Side-by-side
Banco_de_Dados.md 0 → 100644
View page @ 463ac55d
<table>
<tr>
<th>
[Home](home)
</th>
<th>
[**Escopo e Cronograma**](escopo)
</th>
<th>
[Processo](processo)
</th>
<th>
[Design/Mockups](design_mockups)
</th>
<th>
[Configuração](configuracao)
</th>
<th>
[Arquitetura](arquitetura)
</th>
<th>
[Código](codigo)
</th>
<th>
[BD](Banco%20de%20Dados)
</th>
<th>
[Qualidade](qualidade)
</th>
</tr>
</table>
# **Banco de Dados**
![MongoDB_Logo.svg](uploads/b761696f1b80562fe05ae8349a7bdb1e/MongoDB_Logo.svg.png)
## **Descrição**
Para realização do projeto, escolhemos utilizar o banco de dados não relacional Mongo DB. A razão pela escolha deste modelo de banco de dados se deu principalmente por escolha do time em aprender novas tecnologias, pela facilidade de integração com o backend da aplicação e também devido ao projeto possuir somente uma entidade a ser armazenada, que é o Usuário.
## **Sumário**
- [Modelagem](#modelagem)
- [Esquema Conceitual](#esquema-conceitual)
- [Collection](#collections)
- [Implementação](#implementa%C3%A7%C3%A3o)
- [Schemas](#schemas)
## **Modelagem**
### **Esquema Conceitual**
![banco_de_dados](uploads/d7ffe7989acef01b26bfb421d9c58496/banco_de_dados.png)
### **Collections**
As informações dentro do banco de dados MongoDB são armazenadas dentro de _collections_ ou coleções. Coleções são equivalentes a tabelas de banco de dados relacionais, guardando informações importantes em relação a uma entidade.
**Coleção de usuário:**
```plaintext
{ "_id": {
"$oid": "objectId"
},
"nome": "String",
"password": "String",
"cpf": "String",
"telefone": "String",
"email": "String",
"numeroINSS": "String",
"endereco": {
"cep": "String",
"nomeRua": "String",
"numeroCasa": "String",
"complemento": "String",
"bairro": "String",
"cidade": "String",
"estado": "String"
},
"contatosProfissionais": [
{
"telefoneProfissional": "String",
"nomeProfissional": "String",
"descricao": "String"
},
],
"contatoEmergencia": "String",
"administrador": "bool",
"medicamentos": "String",
"planoDeSaude": "String"
}
```
## **Implementação**
### **Schemas**
**Schema do usuário:**
```
@Schema()
export class User implements IUser {
@Prop({ required: true })
nome: string;
@Prop({ required: true })
password: string;
@Prop({ required: true })
cpf: string;
@Prop({ required: true })
telefone: string;
@Prop({ required: true })
email: string;
@Prop()
numeroINSS?: string;
@Prop()
planoDeSaude?: string;
@Prop(Address)
endereco?: Address;
@Prop()
medicamentos?: string;
@Prop({ required: true })
contatosProfissionais: Contact[];
@Prop({ required: true })
contatoEmergencia: string;
@Prop({ required: true })
administrador: boolean;
}
```
**Schema dos contatos:**
```
@Schema()
export class Contact implements IContact {
telefoneProfissional: string;
nomeProfissional: string;
descricao?: string;
}
```
**Schema de endereço:**
```
@Schema()
export class Address implements IAddress {
cep: string;
nomeRua: string;
numeroCasa: string;
complemento?: string;
bairro?: string;
cidade: string;
estado?: string;
}
```
\ No newline at end of file
Clone repository
  • Banco_de_Dados
  • Gerência
  • Horários disponíveis
  • Instalação
  • Retro
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • estudos
  • gerencia
View All Pages