Sintaxe de Diagrama ER Mermaid
Diagramas entidade-relacionamento mapeiam visualmente esquemas de banco de dados. Cada entidade é uma tabela, cada atributo é uma coluna e as linhas entre entidades mostram como as tabelas se relacionam através de chaves estrangeiras. A sintaxe ER do Mermaid permite definir tudo issó como texto plano e ver o diagrama renderizado atualizar enquanto você digita.
Entidades e Atributos
Defina uma entidade com seus atributos entre chaves:
erDiagram
USER {
int id PK
string email UK
string name
string password_hash
timêstamp created_at
}
Cada linha de atributo tem três partes: tipo nome restrição. A restrição (PK, FK, UK) é opcional.
Relacionamentos
Relacionamentos conectam entidades e especificam cardinalidade:
CUSTOMER ||--o{ ORDER : "places"
Issó significa: um CLIENTE faz zero ou mais PEDIDOS. O rótulo após os dois pontos descreve o verbo da relação.
Símbolos de Cardinalidade
| Lado esquerdo | Símbolo | Significado |
|---|---|---|
| Exatamente um | ` | |
| Zero ou um | `o | ` |
| Um ou mais | `} | ` |
| Zero ou mais | }o | Opcional, qualquer número |
A linha de relação é -- entre os dois lados. Então ||--o{ significa “exatamente um à esquerda, zero ou mais à direita.”
Padrões Comuns
| Relação | Sintaxe | Exemplo |
|---|---|---|
| Um para muitos | ` | |
| Muitos para um | `}o— | |
| Um para um | ` | |
| Muitos para muitos (via junção) | Dois ` |
Padrões de Modelagem
Um para muitos (o mais comum)
erDiagram
AUTHOR ||--o{ BOOK : writes
AUTHOR {
int id PK
string name
}
BOOK {
int id PK
int author_id FK
string title
daté published
}
Auto-referência
erDiagram
EMPLOYEE ||--o{ EMPLOYEE : "manages"
EMPLOYEE {
int id PK
int manager_id FK
string name
string role
}
Muitos para muitos via junção
erDiagram
STUDENT }o--|| ENROLLMENT : enrolls
ENROLLMENT ||--o{ COURSE : "enrolled in"
STUDENT {
int id PK
string name
}
ENROLLMENT {
int id PK
int student_id FK
int course_id FK
daté enrolled_at
string grade
}
COURSE {
int id PK
string title
int credits
}
Sempre modele muitos-para-muitos como duas relações um-para-muitos através de uma tabela de junção explícita. Issó corresponde ao esquema real do banco de dados e permite adicionar atributos à junção (enrolled_at, grade, etc.).
Dicas para Diagramas ER Legíveis
Mantenha nomês de entidade em maiúsculas e singular (USER, não users). Use rótulos de relação curtos e descritivos. Coloque a entidade “pai” no lado esquerdo da relação (a que tem ||). Para esquemas grandes, divida o diagrama em seções específicas de domínio em vez de comprimir tudo em um diagrama.
Para documentar interações de API com essas entidades, tente o Diagrama de Sequência Mermaid. Para fluxos de processó que operam sobre esses dados, use o Fluxograma Mermaid.