... | @@ -21,7 +21,9 @@ |
... | @@ -21,7 +21,9 @@ |
|
Este repositório documenta a estrutura do banco de dados do projeto, incluindo tabelas, atributos e relacionamentos.
|
|
Este repositório documenta a estrutura do banco de dados do projeto, incluindo tabelas, atributos e relacionamentos.
|
|
|
|
|
|
## Modelagem
|
|
## Modelagem
|
|

|
|
O modelo abaixo apresenta a modelagem do banco de dados do projeto Lucky Draw, nele podemos ver quais tabelas do banco compõem o sistema. Com isso, podemos observar os atributos de cada tabela, bem como os tipos de cada um, e o relacionamento de cada uma por meio das ligações apresentadas utilizando a mesma nomenclatura disponível no [dbdiagram.io](https://docs.dbdiagram.io/).
|
|
|
|
|
|
|
|

|
|
|
|
|
|
## Tabelas
|
|
## Tabelas
|
|
|
|
|
... | @@ -32,12 +34,6 @@ Este repositório documenta a estrutura do banco de dados do projeto, incluindo |
... | @@ -32,12 +34,6 @@ Este repositório documenta a estrutura do banco de dados do projeto, incluindo |
|
| text | Varchar | Texto da licença |
|
|
| text | Varchar | Texto da licença |
|
|
| data_created | Timestamp | Data de criação da licença |
|
|
| data_created | Timestamp | Data de criação da licença |
|
|
|
|
|
|
### UserType
|
|
|
|
| Campo | Tipo | Descrição |
|
|
|
|
|--------------|-----------|------------|
|
|
|
|
| id_user_type | Integer (PK) | Identificador do tipo de usuário |
|
|
|
|
| type_name | Varchar | Tipo de usuário |
|
|
|
|
|
|
|
|
### User
|
|
### User
|
|
| Campo | Tipo | Descrição |
|
|
| Campo | Tipo | Descrição |
|
|
|---------------|-----------|------------|
|
|
|---------------|-----------|------------|
|
... | @@ -48,10 +44,9 @@ Este repositório documenta a estrutura do banco de dados do projeto, incluindo |
... | @@ -48,10 +44,9 @@ Este repositório documenta a estrutura do banco de dados do projeto, incluindo |
|
| password | Varchar | Senha |
|
|
| password | Varchar | Senha |
|
|
| bio | Text | Biografia |
|
|
| bio | Text | Biografia |
|
|
| coins | Integer | Moedas |
|
|
| coins | Integer | Moedas |
|
|
| user_type_id | Integer (FK) | Tipo de usuário |
|
|
| is_admin | Boolean | Tipo de usuário |
|
|
| offender_day | Integer | Dias de ofensiva |
|
|
| offender_day | Integer | Dias de ofensiva |
|
|
| data_last_active | Timestamp | Última atividade |
|
|
| data_last_active | Timestamp | Última atividade |
|
|
| photo_thumb | Varchar | Miniatura da foto |
|
|
|
|
| photo | Varchar | Foto do usuário |
|
|
| photo | Varchar | Foto do usuário |
|
|
| license_id | Integer (FK) | Licença do usuário |
|
|
| license_id | Integer (FK) | Licença do usuário |
|
|
| active | Boolean | Status da conta|
|
|
| active | Boolean | Status da conta|
|
... | @@ -112,10 +107,15 @@ Este repositório documenta a estrutura do banco de dados do projeto, incluindo |
... | @@ -112,10 +107,15 @@ Este repositório documenta a estrutura do banco de dados do projeto, incluindo |
|
| data_report | Timestamp | Data |
|
|
| data_report | Timestamp | Data |
|
|
|
|
|
|
## Relacionamentos
|
|
## Relacionamentos
|
|
- Cada usuário pertence a um **UserType**.
|
|
|
|
- Usuários podem possuir múltiplos **Decks** por meio da tabela **UserDeck**.
|
|
- Usuários podem possuir múltiplos **Decks** por meio da tabela **UserDeck**.
|
|
- Cada **Deck** contém várias **Cards**.
|
|
- Cada **Deck** contém várias **Cards**.
|
|
- O sistema gera um conjunto de **DailyCards**.
|
|
- O sistema gera um conjunto de **DailyCards**.
|
|
- Usuários podem criar **Posts** associados a cartas.
|
|
- Usuários podem criar **Posts** associados a cartas.
|
|
- **Posts** podem ser denunciados por usuários na tabela **Report**.
|
|
- **Posts** podem ser denunciados por usuários na tabela **Report**.
|
|
|
|
|
|
|
|
## Ferramentas
|
|
|
|
### PostgreSQL
|
|
|
|
O PostgreSQL é um Sistema Gerenciador de Banco de Dados Relacional de código aberto que proporciona escalabilidade e segurança no armazenamento e recuperação de dados. A modularidade da sua arquitetura junto a recursos como transações ACID (atomicidade, consistência, isolamento e durabilidade) e suporte para trabalhar com JSON (JavaScript Object Notation) fez com que o escolhessemos para este projeto. Além disso, o fato de ser um banco relacional facilita o aprendizado dado que é o tipo de tecnologia mais visto em disciplinas de banco no curso de Engenharia de Software.
|
|
|
|
|
|
|
|
### DBeaver
|
|
|
|
Recomendamos o uso do DBeaver neste projeto para trabalhar com o banco de dados PostgreSQL porque ele oferece uma interface intuitiva, poderosa e unificada que facilita a visualização das tabelas, execução de queries e gerenciamento do banco como um todo. Além disso, o DBeaver é gratuito, multiplataforma e possui integração nativa com PostgreSQL, o que agiliza o desenvolvimento e minimiza erros, especialmente em trabalhos colaborativos. |
|
|
|
\ No newline at end of file |