Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki 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
  • Painel de Dados Nubo
  • WikiWiki
  • Wiki
  • Banco de Dados

Banco de Dados · Changes

Page history
Update Banco de Dados authored Jun 14, 2025 by Luana Farias da Silva's avatar Luana Farias da Silva
Show whitespace changes
Inline Side-by-side
Banco-de-Dados.md
View page @ e726740f
...@@ -50,28 +50,187 @@ Armazena as informações dos usuários do sistema. Cada usuário está associad ...@@ -50,28 +50,187 @@ Armazena as informações dos usuários do sistema. Cada usuário está associad
- `role_id`: relacionamento com a tabela `user_role`, indicando o tipo de permissão 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. ### Descrição
Contém informações adicionais de perfil associadas a um usuário. Essa tabela estende os dados da tabela `user`, armazenando informações complementares como a imagem de perfil.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|----------------|------------|---------------|-----------------------------------|----------------------------------------------------------|
| `id` | `UUID` | Primária | Gerado via `uuid.uuid4` | Identificador único do detalhe de usuário. |
| `user_id` | `String` | Estrangeira | `ForeignKey(user.id)` | Referência ao usuário ao qual os detalhes pertencem. |
| `profile_pic` | `String` | — | `NOT NULL` | URL ou caminho da imagem de perfil do usuário. |
### Relacionamentos
- `user_id`: relacionamento com a tabela `user`, definindo a quem pertencem os dados complementares.
---
### **UserRole** ### **UserRole**
Define os papéis que um usuário pode ter dentro do sistema, como administrador ou assinante. ### Descrição
Define os diferentes papéis (*roles*) que um usuário pode assumir dentro do sistema. Essa tabela é usada para controle de permissões e escopo de funcionalidades.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|--------------|-----------|-----------|---------------------|--------------------------------------------|
| `id` | `Integer` | Primária | `INDEX` | Identificador único do papel. |
| `role_name` | `String` | — | `NOT NULL` | Nome do papel atribuído ao usuário. |
### Valores Padrão (ENUM)
- `ROLE_NORMAL`: Representa o papel de um usuário comum.
- `ROLE_ADMIN`: Representa o papel de um usuário com permissões administrativas.
### Relacionamentos
- Essa tabela é referenciada por `user.role_id` para associar cada usuário ao seu respectivo papel.
---
### **Account** ### **Account**
Representa uma entidade (empresa ou organização) que assina datasets e realiza transações. ### Descrição
Armazena os dados das contas principais do sistema, que podem representar uma empresa, organização ou grupo ao qual os usuários estão vinculados. Cada conta possui um papel definido na tabela `account_role` e pode possuir múltiplas transações e assinaturas.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|---------------|-------------|------------|--------------------------------------------|-----------------------------------------------------------|
| `id` | `String` | Primária | Gerado via `UUID` | Identificador único da conta. |
| `role_id` | `Integer` | Estrangeira| `ForeignKey(account_role.id)`, `NOT NULL` | Papel da conta, definido na tabela `account_role`. |
| `slug` | `String(50)`| — | `UNIQUE`, `NOT NULL` | Identificador textual único da conta (ex: nome simplificado). |
| `is_active` | `Boolean` | — | `DEFAULT True` | Indica se a conta está ativa no sistema. |
| `created_at` | `TIMESTAMP` | — | `NOT NULL` | Data de criação do registro da conta. |
| `updated_at` | `TIMESTAMP` | — | `NOT NULL` | Data da última atualização do registro. |
### Relacionamentos
- `role_id`: relacionamento com a tabela `account_role`, indicando o tipo da conta.
- `subscriptions`: relacionamento com a tabela `subscription`, listando as assinaturas associadas à conta.
- `transactions`: relacionamento com a tabela `transaction`, listando as transações realizadas pela conta.
---
### **AccountRole** ### **AccountRole**
Define os diferentes tipos de papéis que uma conta pode ter dentro da plataforma. ### Descrição
Define os diferentes papéis que uma conta pode ter no sistema. Esses papéis são utilizados para controlar permissões, funcionalidades disponíveis e o nível de acesso de cada conta (ex: contas comuns ou administrativas).
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|--------------|-----------|-----------|---------------------|--------------------------------------------------|
| `id` | `Integer` | Primária | `INDEX` | Identificador único do papel de conta. |
| `role_name` | `String` | — | `NOT NULL` | Nome descritivo do papel atribuído à conta. |
### Valores Padrão (Constantes Definidas no Código)
- `ROLE_NORMAL`: Representa uma conta comum, com permissões básicas.
- `ROLE_ADMIN`: Representa uma conta com permissões administrativas ampliadas.
### Relacionamentos
- Essa tabela é referenciada por `account.role_id` para definir o papel da conta no sistema.
---
### **Subscription** ### **Subscription**
Registra as assinaturas de datasets feitas pelas contas, incluindo informações sobre período e status. ### Descrição
Registra as assinaturas de produtos de dados feitas por contas do sistema. Cada assinatura está vinculada a uma conta e a um produto específico, com informações de data de início, término e status de atividade.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|------------------|-------------|------------|---------------------------------------------------|----------------------------------------------------------------|
| `id` | `String` | Primária | Gerado via `UUID` | Identificador único da assinatura. |
| `account_id` | `String` | Estrangeira| `ForeignKey(account.id)`, `NOT NULL` | Referência à conta que realizou a assinatura. |
| `data_product_id`| `String` | Estrangeira| `ForeignKey(data_product.id)`, `NOT NULL` | Produto de dados assinado pela conta. |
| `start_date` | `DateTime` | — | `NOT NULL` | Data de início da assinatura. |
| `end_date` | `DateTime` | — | `NULLABLE` | Data de término da assinatura (quando aplicável). |
| `is_active` | `Boolean` | — | `DEFAULT True` | Indica se a assinatura está ativa. |
| `created_at` | `DateTime` | — | `DEFAULT func.now()`, `NOT NULL` | Timestamp da criação da assinatura. |
| `updated_at` | `DateTime` | — | `DEFAULT func.now()`, atualizado com `onupdate` | Timestamp da última modificação. |
### Relacionamentos
- `account`: relacionamento com a tabela `account`, indicando qual conta realizou a assinatura.
- `data_product`: relacionamento com a tabela `data_product`, indicando qual produto foi assinado.
---
### **Transaction** ### **Transaction**
Armazena informações sobre transações financeiras realizadas dentro do sistema, vinculadas a uma conta e a um usuário responsável. ### Descrição
Armazena os detalhes de cada transação realizada por uma conta, vinculando produtos de dados adquiridos ou acessados e, opcionalmente, a assinatura usada no processo. Essa tabela detalha o que foi efetivamente movimentado em uma transação.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|------------------|-------------|------------|---------------------------------------------------|----------------------------------------------------------------|
| `id` | `Integer` | Primária | `INDEX` | Identificador único do detalhe da transação. |
| `transaction_id` | `String` | Estrangeira| `ForeignKey(transaction.id)`, `NOT NULL` | Referência à transação principal. |
| `data_product_id`| `String` | Estrangeira| `ForeignKey(data_product.id)`, `NOT NULL` | Produto de dados relacionado ao detalhe da transação. |
| `sub_id` | `String` | Estrangeira| `ForeignKey(subscription.id)`, `NULLABLE` | Referência à assinatura utilizada na transação (se houver). |
| `created_at` | `DateTime` | — | `DEFAULT func.now()`, `NOT NULL` | Data e hora da criação do registro. |
| `updated_at` | `DateTime` | — | `DEFAULT func.now()`, atualizado com `onupdate` | Data e hora da última atualização do registro. |
### Relacionamentos
- `transaction`: relacionamento com a tabela `transaction`, à qual o detalhe pertence.
- `data_product`: relacionamento com a tabela `data_product`, especificando qual produto está relacionado ao detalhe.
- `subscription`: relacionamento com a tabela `subscription`, referenciando a assinatura utilizada (se aplicável).
---
### **TransactionDetail** ### **TransactionDetail**
Detalha os itens dentro de uma transação, associando datasets e produtos de dados adquiridos. ### Descrição
Armazena os detalhes de cada transação realizada por uma conta, vinculando produtos de dados adquiridos ou acessados e, opcionalmente, a assinatura usada no processo. Essa tabela detalha o que foi efetivamente movimentado em uma transação.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|------------------|-------------|------------|---------------------------------------------------|----------------------------------------------------------------|
| `id` | `Integer` | Primária | `INDEX` | Identificador único do detalhe da transação. |
| `transaction_id` | `String` | Estrangeira| `ForeignKey(transaction.id)`, `NOT NULL` | Referência à transação principal. |
| `data_product_id`| `String` | Estrangeira| `ForeignKey(data_product.id)`, `NOT NULL` | Produto de dados relacionado ao detalhe da transação. |
| `sub_id` | `String` | Estrangeira| `ForeignKey(subscription.id)`, `NULLABLE` | Referência à assinatura utilizada na transação (se houver). |
| `created_at` | `DateTime` | — | `DEFAULT func.now()`, `NOT NULL` | Data e hora da criação do registro. |
| `updated_at` | `DateTime` | — | `DEFAULT func.now()`, atualizado com `onupdate` | Data e hora da última atualização do registro. |
### Relacionamentos
- `transaction`: relacionamento com a tabela `transaction`, à qual o detalhe pertence.
- `data_product`: relacionamento com a tabela `data_product`, especificando qual produto está relacionado ao detalhe.
- `subscription`: relacionamento com a tabela `subscription`, referenciando a assinatura utilizada (se aplicável).
---
### **Invoice** ### **Invoice**
Registra os valores faturados das transações, garantindo rastreabilidade contábil. ### Descrição
Armazena as faturas geradas para cada transação. Cada fatura está vinculada a uma transação específica e contém o valor total cobrado, além dos timestamps de criação e atualização.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|----------------|------------|------------|---------------------|-----------------------------------------------------|
| `id` | `Integer` | Primária | `INDEX` | Identificador único da fatura. |
| `transaction_id`| `String` | Estrangeira| `ForeignKey(transaction.id)` | Referência à transação relacionada à fatura. |
| `total` | `Numeric` | — | `NOT NULL` | Valor total da fatura. |
| `created_at` | `DateTime` | — | `NOT NULL` | Data e hora de criação da fatura. |
| `updated_at` | `DateTime` | — | `NOT NULL` | Data e hora da última atualização da fatura. |
### Relacionamentos
- `transaction`: relacionamento com a tabela `transaction`, indicando a qual transação a fatura pertence.
---
### **Dataset** ### **Dataset**
Representa um dataset disponível para assinatura, contendo metadados como origem, preço e categoria. Representa um dataset disponível para assinatura, contendo metadados como origem, preço e categoria.
......
Clone repository
  • Arquitetura
  • Banco de Dados
  • Gerência
  • Mockups
  • Processos
  • Sprints
  • Testes
  • Home