Um diagrama entidade-relacionamento comunica estrutura e cardinalidade. Ele ajuda no projeto e na integração de pessoas, mas não substitui migrações executáveis. Use-o para explicar restrições importantes e mantenha o banco como fonte oficial.
Modele entidades e atributos
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ ORDER_ITEM : contains
PRODUCT ||--o{ ORDER_ITEM : appears_in
CUSTOMER { uuid id PK string email UK }
ORDER { uuid id PK uuid customer_id FK string status }
ORDER_ITEM { uuid order_id FK uuid product_id FK int quantity }
PRODUCT { uuid id PK string name decimal price }
Tipos de atributo são descritivos. Use o vocabulário da equipe, mas não suponha que o diagrama imponha precisão, índices, valores padrão ou restrições específicas.
Leia a cardinalidade nos dois lados
CUSTOMER ||--o{ ORDER diz que cada pedido pertence exatamente a um cliente e um cliente pode ter zero ou muitos pedidos. Ler as duas pontas revela opcionalidade. Rótulos de relacionamento documentam a ideia, não são nomes de chaves estrangeiras.
Mostre a quantidade certa do esquema
Colunas de auditoria, índices técnicos e campos de integração podem sobrecarregar uma visão geral. Mostre apenas chaves e atributos necessários para entender o domínio e vincule migrações ou documentação gerada para detalhes.
Verifique suposições no banco
Opcionalidade, unicidade e direção precisam coincidir com as restrições reais. “Exatamente um” é enganoso se a chave estrangeira aceita nulo. Marque relações incertas no texto em vez de apresentar hipóteses como regras.
Use o modelo ER no editor Mermaid para validar a sintaxe e exportar SVG escalável.