... | @@ -2,19 +2,71 @@ |
... | @@ -2,19 +2,71 @@ |
|
| :----------: | :----------------------: | :------------------: | :--------------: | :--------------------------: | :------------------------: | :--------------: | :---------------: | :--------------------: | :------------------------: |
|
|
| :----------: | :----------------------: | :------------------: | :--------------: | :--------------------------: | :------------------------: | :--------------: | :---------------: | :--------------------: | :------------------------: |
|
|
# **Banco de Dados**
|
|
# **Banco de Dados**
|
|
|
|
|
|
(LOGO)
|
|
![image](uploads/42542924af35a4e006e7c6fc27d2d9cd/image.png)
|
|
|
|
|
|
## **Descrição**
|
|
## **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.
|
|
O Firebase é uma plataforma de desenvolvimento de aplicativos fornecida pela Google. Ela inclui um banco de dados em tempo real chamado Firebase Realtime Database, que é uma solução NoSQL altamente escalável. O Firebase Realtime Database armazena dados como um grande objeto JSON, permitindo que os desenvolvedores criem aplicativos em tempo real com atualizações automáticas.
|
|
|
|
|
|
## **Sumário**
|
|
Nesta documentação, vamos explorar a estrutura do banco de dados Firebase, juntamente com os schemas para as coleções Objective e User.
|
|
|
|
|
|
- [Modelagem](#modelagem)
|
|
## **Modelagem do Banco de Dados**
|
|
- [Entidade-Relacionamento](#Entidade-Relacionamento)
|
|
|
|
|
|
- [Esquema Entidade-Relacionamento](#Entidade-Relacionamento)
|
|
|
|
|
|
![image](uploads/d7307824639c3c156356376ebed66758/image.png)
|
|
![image](uploads/d7307824639c3c156356376ebed66758/image.png)
|
|
|
|
|
|
|
|
- [Esquema-Lógico](#Entidade-Relacionamento)
|
|
|
|
|
|
|
|
## **Estrutura do Banco de Dados Firebase**
|
|
|
|
|
|
|
|
O Firebase Realtime Database organiza os dados em uma estrutura de árvore, onde cada nó é identificado por uma chave exclusiva. Os nós podem conter outros nós e/ou valores primitivos.
|
|
|
|
|
|
|
|
````
|
|
|
|
/users
|
|
|
|
/<user_id>
|
|
|
|
name: "Nome do Usuário"
|
|
|
|
notificationTime: 12
|
|
|
|
dailyGoal: 5
|
|
|
|
/objectives
|
|
|
|
/<objective_id>
|
|
|
|
name: "Nome do Objetivo"
|
|
|
|
/phrases
|
|
|
|
/<phrase_id>
|
|
|
|
text: "Texto da Frase"
|
|
|
|
/phrases
|
|
|
|
/<phrase_id>
|
|
|
|
text: "Texto da Frase"
|
|
|
|
````
|
|
|
|
|
|
|
|
Na estrutura acima, temos um nó raiz chamado users, que contém nós filhos identificados por IDs de usuário (<user_id>). Cada nó de usuário possui os seguintes atributos:
|
|
|
|
|
|
|
|
*name: O nome do usuário (String).
|
|
|
|
*notificationTime: O horário de notificação do usuário (int).
|
|
|
|
*dailyGoal: A meta diária do usuário (int).
|
|
|
|
*objectives: Um nó que armazena os objetivos do usuário.
|
|
|
|
*phrases: Um nó que armazena as frases do usuário.
|
|
|
|
|
|
|
|
Dentro do nó objectives, encontramos nós identificados por IDs de objetivo (<objective_id>). Cada nó de objetivo possui os seguintes atributos:
|
|
|
|
|
|
|
|
*name: O nome do objetivo (String).
|
|
|
|
*phrases: Um nó que armazena as frases relacionadas ao objetivo.
|
|
|
|
|
|
|
|
Dentro do nó phrases, encontramos nós identificados por IDs de frase (<phrase_id>). Cada nó de frase possui o seguinte atributo:
|
|
|
|
|
|
|
|
*text: O texto da frase (String).
|
|
|
|
|
|
|
|
## **Schemas das Coleções**
|
|
|
|
|
|
|
|
A seguir, apresentamos os schemas das classes 'Objective' e 'User' em Dart, que representam a estrutura de dados mencionada acima.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- [Collection](#collections)
|
|
- [Collection](#collections)
|
|
|
|
|
|
|
|
Coleções do Firebase Realtime Database
|
|
|
|
Coleção users
|
|
|
|
Esta coleção armazena os dados dos usuários registrados no aplicativo.
|
|
- [Implementação](#implementa%C3%A7%C3%A3o)
|
|
- [Implementação](#implementa%C3%A7%C3%A3o)
|
|
- [Schemas](#schemas) |
|
- [Schemas](#schemas) |
|
|
|
\ No newline at end of file |