... | @@ -19,10 +19,35 @@ O banco de dados foi projetado para gerenciar assinaturas de datasets e data pro |
... | @@ -19,10 +19,35 @@ O banco de dados foi projetado para gerenciar assinaturas de datasets e data pro |
|

|
|

|
|
|
|
|
|
## Estrutura do Banco de Dados
|
|
## Estrutura do Banco de Dados
|
|
|
|
## 🔧 ORM Utilizado: SQLAlchemy
|
|
|
|
|
|
|
|
Neste projeto, utilizamos o **SQLAlchemy** como ORM (*Object Relational Mapper*) para facilitar a interação entre a aplicação e o banco de dados relacional, permitindo manipular dados do banco como objetos Python, reduzindo o uso de SQL cru.
|
|
|
|
|
|
|
|
## 🔧 Estruturas das tabelas
|
|
O banco é composto pelas seguintes tabelas principais:
|
|
O banco é composto pelas seguintes tabelas principais:
|
|
|
|
|
|
### **User**
|
|
### **User**
|
|
Gerencia os usuários do sistema, armazenando informações pessoais, credenciais de acesso e vínculo com uma conta.
|
|
#### Descrição
|
|
|
|
Armazena as informações dos usuários do sistema. Cada usuário está associado a uma conta (`account`) e possui um papel definido (`user_role`), permitindo controle de permissões e escopo.
|
|
|
|
|
|
|
|
#### Estrutura da Tabela
|
|
|
|
|
|
|
|
| Coluna | Tipo | Chave | Restrições | Descrição |
|
|
|
|
|------------------|-------------|----------------|--------------------------------------------|----------------------------------------------------------|
|
|
|
|
| `id` | `String` | Primária | Gerado via `UUID` | Identificador único do usuário. |
|
|
|
|
| `account_id` | `String` | Estrangeira | `ForeignKey(account.id)` | Referência à conta à qual o usuário pertence. |
|
|
|
|
| `role_id` | `Integer` | Estrangeira | `ForeignKey(user_role.id)`, `NOT NULL` | Papel (role) do usuário dentro da conta. |
|
|
|
|
| `name` | `String` | — | `NOT NULL` | Nome completo do usuário. |
|
|
|
|
| `email` | `String` | — | `UNIQUE`, `NOT NULL` | Email do usuário, utilizado para login e contato. |
|
|
|
|
| `externalToken` | `String` | — | `UNIQUE`, `NULLABLE` | Token externo de autenticação, se aplicável. |
|
|
|
|
| `is_active` | `Boolean` | — | `DEFAULT True` | Indica se o usuário está ativo no sistema. |
|
|
|
|
| `created_at` | `TIMESTAMP` | — | `NOT NULL` | Data de criação do registro. |
|
|
|
|
| `updated_at` | `TIMESTAMP` | — | `NOT NULL` | Data da última atualização do registro. |
|
|
|
|
|
|
|
|
#### Relacionamentos
|
|
|
|
|
|
|
|
- `account`: relacionamento com a tabela `account`, representando a conta do usuário.
|
|
|
|
- `role_id`: relacionamento com a tabela `user_role`, indicando o tipo de permissão do usuário.
|
|
|
|
|
|
### **UserDetails**
|
|
### **UserDetails**
|
|
Ela é usada para armazenar informações adicionais do usuário, separadamente da tabela principal de user. Isso é útil para manter a separação de responsabilidades entre as tabelas.
|
|
Ela é usada para armazenar informações adicionais do usuário, separadamente da tabela principal de user. Isso é útil para manter a separação de responsabilidades entre as tabelas.
|
... | | ... | |