Definição
Relacionamento é a associação definida entre entidades ou registros. Ele descreve como um conceito se liga a outro, por exemplo, como um cliente se liga aos pedidos que faz.
Cardinalidade a partir de perguntas do negócio
As perguntas certas revelam a cardinalidade. Um cliente pode ter vários pedidos, e cada pedido pertence a um único cliente, o que forma um relacionamento um para muitos. Quando cada cliente tem um único cadastro de endereço principal, o vínculo é um para um, e quando vários clientes podem comprar vários produtos, o modelo precisa de uma associação muitos para muitos.
CREATE TABLE clientes (
id INTEGER PRIMARY KEY,
nome TEXT NOT NULL
);
CREATE TABLE pedidos (
id INTEGER PRIMARY KEY,
cliente_id INTEGER NOT NULL,
FOREIGN KEY (cliente_id) REFERENCES clientes (id)
);A associação do modelo e sua implementação
Relacionamento é a associação do modelo, não uma obrigação de formato físico. A implementação depende da estrutura escolhida: em um banco relacional, o vínculo usa chaves, enquanto outros armazenamentos podem usar documentos aninhados ou referências. O desenho conceitual permanece, e a persistência se adapta a ele.
Falha comum e como verificar
A falha mais comum é declarar a cardinalidade errada, porque uma pergunta incompleta sobre o negócio gera um vínculo que não comporta os casos reais. Se um cliente pode ter vários endereços e o modelo assume um para um, o segundo endereço é sobrescrito ou recusado. Para verificar, faça a pergunta ao contrário, quantos registros o lado oposto pode ter, e confira se a estrutura permite esse número. Depois, tente gravar o caso limite e observe se o banco aceita a linha. Quando a gravação quebra ou o modelo força perda de conteúdo, a cardinalidade precisa ser revisada.
Veja o vínculo persistido por chave estrangeiraDúvidas frequentes
Perguntas frequentes sobre Relacionamento
- Um relacionamento é uma tabela?
- Não. É a associação do modelo. A implementação depende da estrutura escolhida para persistência.
- O que é cardinalidade?
- É a medida do relacionamento, como um para um, um para muitos e muitos para muitos.
- Como descobrir a cardinalidade?
- Com perguntas sobre o negócio, como quantos pedidos um cliente pode ter.
Para continuar
Recursos relacionados
Documentação
Prisma: relations
Mostra como declarar relacionamentos entre modelos no Prisma.
Abrir recursoDocumentação
PostgreSQL: foreign keys
Apresenta o vínculo persistido entre tabelas por chave estrangeira.
Abrir recursoAplicação na formação
Formação DevOps
Na Formação DevOps, relacionamentos definem como tabelas se ligam e guiam a criação de chaves e índices.
Conhecer a formaçãoFontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.