O Domain Model é um dos elementos mais importantes dentro do Mendix, pois é ele quem define a estrutura dos dados da sua aplicação. Se você pensa no app como uma casa, o domain model é o projeto arquitetônico que organiza os cômodos, portas e conexões — ou seja, as entidades, atributos e associações.
Neste artigo, vamos explorar em detalhes:
- O que é o Domain Model
- Como funcionam as entidades persistíveis e não persistíveis
- O papel dos atributos, associações e regras de validação
- As opções de acesso e segurança
- Exemplos práticos de uso no Mendix
O que é o Domain Model no Mendix?
O Domain Model é a representação visual do banco de dados da aplicação. Ele permite criar:
- Entidades (Entities): tabelas que armazenam os dados.
- Atributos (Attributes): colunas que guardam informações específicas.
- Associações (Associations): relações entre as entidades.
Tudo isso é feito de forma visual e intuitiva, sem precisar escrever código SQL.
📌 Em resumo: o domain model é o coração da aplicação dentro do Mendix.
Principais Elementos do Domain Model
Dentro do Mendix Studio Pro, ao abrir o Domain Model, você encontra diversas ferramentas para modelar dados. Veja os principais elementos:
Elemento | Descrição |
---|---|
Entity (Entidade) | Representa uma tabela do banco de dados. |
Annotation (Anotação) | Caixa de texto livre para documentar informações. |
Cross-module Associations | Permite associar entidades entre diferentes módulos. |
System Members | Atributos padrão criados automaticamente (CreatedDate, ChangedDate, Owner, ChangedBy). |
Entidades no Mendix
As entidades são o ponto de partida. Existem dois tipos:
- Persistíveis (Persistable Entities)
- Armazenam os dados no banco de dados.
- Exemplo: Usuários, Pedidos, Produtos.
- Não Persistíveis (Non-Persistable Entities)
- Servem para dados temporários que não precisam ser salvos.
- Exemplo: informações de sessão ou cálculos momentâneos.
🔎 Comparativo entre os tipos de entidade
Tipo de Entidade | Armazena no Banco | Uso Comum |
---|---|---|
Persistível | ✅ Sim | Cadastro de clientes, pedidos, relatórios. |
Não Persistível | ❌ Não | Cálculos temporários, variáveis de tela. |
Atributos e Propriedades
Cada entidade contém atributos, que funcionam como colunas em uma tabela.
Ao criar um atributo, você pode definir:
- Nome: identificação do campo.
- Tipo de dado: string, inteiro, decimal, boolean, etc.
- Documentação: descrição para facilitar a manutenção.
- Validações: obrigatoriedade, unicidade e restrições personalizadas.
🔹 Exemplo:
Na entidade User, você pode ter os atributos: Name
, Email
, Password
e CreatedDate
.
Associações entre Entidades
As associações permitem criar relacionamentos entre entidades, como em bancos relacionais.
Tipos de associações:
- 1 : 1 (Um para um)
- 1 : * (Um para muitos)
- *** : * (Muitos para muitos)**
Você pode criar associações:
- Pelo botão New Association
- Ou arrastando a borda de uma entidade até outra no Domain Model
✨ Também é possível criar self reference, ou seja, uma entidade que se relaciona consigo mesma.
Regras de Validação
O Mendix permite aplicar Validation Rules diretamente no Domain Model:
- Campo obrigatório
- Valor único
- Restrições personalizadas
Isso garante que os dados inseridos sejam consistentes antes mesmo de salvar no banco.
Eventos e Microflows
As entidades podem ter eventos associados:
- Before Commit (antes de salvar no banco)
- After Commit (depois de salvar)
- Before Delete (antes de excluir)
- After Delete (depois de excluir)
Esses eventos são usados para disparar microflows automáticos.
👉 Exemplo: enviar um e-mail de confirmação ao criar um novo pedido.
Indexação
Você pode criar índices para acelerar buscas dentro de grandes tabelas.
Isso é feito definindo atributos indexados, melhorando o desempenho das consultas.
Acesso e Segurança
Cada entidade possui configurações de Access Rules, que definem quem pode:
- Criar objetos
- Editar atributos
- Ler informações
- Excluir registros
Essas regras podem ser configuradas para diferentes User Roles, garantindo segurança e boas práticas.
🔒 Exemplo:
- Usuário Admin pode criar, editar e excluir clientes.
- Usuário Manager só pode ler e editar clientes associados a ele.
Documentação
O Mendix permite adicionar documentação interna diretamente no domain model, seja em atributos, entidades ou anotações.
Isso facilita a manutenção e a colaboração em equipe.
Conclusão
O Domain Model no Mendix é a espinha dorsal da aplicação. Ele organiza como os dados são armazenados, relacionados e manipulados, garantindo uma base sólida para qualquer sistema.
Com ele, é possível criar aplicações robustas, seguras e escaláveis sem precisar escrever código de banco de dados.
👉 Se você está começando no Mendix, dominar o Domain Model é o primeiro passo para criar apps de sucesso.