Schema Keeptor

A Keeptor utiliza uma arquitetura de banco de dados Multi-Organizações e Multi-Empresas, permitindo isolamento de dados e flexibilidade operacional em dois níveis hierárquicos:

Arquitetura Multi-Tenant: Organizações e Empresas

Organizações (Organizations)
Representa o nível contratual da plataforma. Cada organização agrupa todas as configurações e dados de um contrato específico:

  • Permissões e políticas globais do contrato
  • Configurações gerais e limites de uso
  • Dados de faturamento e informações contratuais

Empresas (Companies)
Representa o nível operacional dentro de uma organização. Cada empresa é uma unidade de negócio que utiliza a plataforma no dia a dia:

  • Vinculada a uma organização (contrato)
  • Responsável pelos lançamentos e registros transacionais
  • Permite que múltiplos CNPJs ou filiais operem sob o mesmo contrato
  • Segregação de dados operacionais entre empresas

Resumo: Uma Organização pode conter várias Empresas, onde a organização define "quem contrata" e as empresas definem "quem opera".

Relacionamento das Tabelas

┌─────────────────┐         ┌─────────────────────┐
│  Keeptor Plat   │────────>│    KPT_CORE_ORG     │
│                 │   1:N   │    Organizations    │
│─────────────────│         │─────────────────────│
│                 │         │ organization_id [PK]│
│                 │         │ partner_id      [FK]│
│                 │         │ organization_name   │
│                 │         │ subscription_plan   │
└─────────────────┘         │ max_users           │
                            │ max_concurrent_sess │
                            └──────────┬──────────┘
                                       │
           ┌───────────────────────────┼───────────────────────────┐
           │                           │                           │
           ▼                           ▼                           ▼
┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐
│  KPT_CORE_COM   │         │  KPT_CORE_USR   │         │ KPT_CORE_ORG_MOD│
│  Companies      │         │  Users          │         │ Modules Ativados│
│─────────────────│         │─────────────────│         │─────────────────│
│ organization_id │         │ organization_id │         │ organization_id │
│ company_id  [PK]│         │ user_id     [PK]│         │ module_id   [PK]│
│ company_name    │         │ user_email  [UK]│         │ activated_at    │
│ company_type    │         │ user_name       │         │ expires_at      │
│ is_headquarters │         │ user_role       │         └─────────────────┘
└─────────────────┘         │ auth_user_id[FK]│                 ▲
                            └────────┬────────┘                 │
                                     │                          │
                                     ▼                          │
                            ┌─────────────────┐         ┌───────┴───────┐
                            │KPT_CORE_SESSIONS│         │ KPT_CORE_MOD  │
                            │ Sessoes Ativas  │         │ Modules       │
                            │─────────────────│         │───────────────│
                            │ session_id  [PK]│         │ module_id [PK]│
                            │ user_id     [FK]│         │ solution_id   │
                            │ ip_address      │         │ module_name   │
                            │ not_after       │         └───────┬───────┘
                            │ is_active       │                 │
                            └─────────────────┘                 │
                                                        ┌───────┴───────┐
                                                        │ KPT_CORE_SOL  │
                                                        │ Solutions     │
                                                        │───────────────│
                                                        │solution_id[PK]│
                                                        │ solution_name │
                                                        │ OMNI/CRM/ETC  │
                                                        └───────────────┘

Lista de Tabelas

Core

TabelaDescrição
kpt_core_orgOrganizações com contrato ativo
kpt_core_comFiliais e unidades operacionais
kpt_core_usrUsuários do sistema
kpt_core_usr_sessionsSessões ativas por usuário
kpt_core_usr_perPermissões por usuário
kpt_core_solSoluções: Omnichannel, CRM, ERP
kpt_core_modMódulos de cada solução
kpt_core_org_modMódulos contratados por org
kpt_core_org_bannersBanners personalizados
kpt_core_entMapeamento de entidades

Nomenclatura

As tabelas seguem o padrão KPT_[SOLUCAO]_[MODULO]_[NOME]:

  • KPT_CORE_ → Tabelas do núcleo multi-tenant
  • KPT_OMNI_ → Tabelas do Omnichannel
  • KPT_SHARED_ → Tabelas compartilhadas

Constraints:

  • PK_ → Chave primária
  • FK_ → Chave estrangeira
  • UK_ → Índice único
  • CK_ → Validação (check)