Documentação do Negócio
Documentação Técnica
Visão Geral
O banco de dados foi projetado para gerenciar assinaturas de datasets e data products, garantindo rastreabilidade de transações e faturamento. Ele segue um modelo relacional estruturado para garantir consistência e escalabilidade.\
Diagrama
Estrutura do Banco de Dados
O banco é composto pelas seguintes tabelas principais:
User
Gerencia os usuários do sistema, armazenando informações pessoais, credenciais de acesso e vínculo com uma conta.
UserRole
Define os papéis que um usuário pode ter dentro do sistema, como administrador ou assinante.
Account
Representa uma entidade (empresa ou organização) que assina datasets e realiza transações.
AccountRole
Define os diferentes tipos de papéis que uma conta pode ter dentro da plataforma.
Subscription
Registra as assinaturas de datasets feitas pelas contas, incluindo informações sobre período e status.
Transaction
Armazena informações sobre transações financeiras realizadas dentro do sistema, vinculadas a uma conta e a um usuário responsável.
TransactionDetail
Detalha os itens dentro de uma transação, associando datasets e produtos de dados adquiridos.
Invoice
Registra os valores faturados das transações, garantindo rastreabilidade contábil.
Dataset
Representa um dataset disponível para assinatura, contendo metadados como origem, preço e categoria.
DataSource
Define a fonte de onde os datasets são obtidos, associando-os a provedores de dados.
DataProvider
Representa uma entidade que fornece datasets para a plataforma.
DataProduct
Define um conjunto de datasets agrupados em um produto de dados que pode ser adquirido como uma unidade.
DataProductItem
Relaciona datasets individuais a um data product, permitindo composição flexível de pacotes de dados.
Regras de Integridade e Constraints
- Todas as chaves primárias são UUIDs para garantir unicidade.
- As relações entre tabelas são definidas por chaves estrangeiras (FK) para garantir a integridade referencial.
- O campo
is_active
é utilizado para marcar registros ativos e inativos, evitando exclusão física de dados. - O faturamento é baseado em transações e invoices, garantindo rastreabilidade e conformidade com práticas contábeis.
Considerações Finais
O banco de dados foi estruturado para garantir flexibilidade e escalabilidade. Alteracoes futuras podem incluir:
- Auditoria de logs para rastrear ações de usuários.
- Indexação para otimização de buscas.
- Expansão do modelo de faturamento para planos diferenciados.