Essa semana fui questionado a respeito de relacionamentos do tipo Normal e Related, vou tentar explicar abaixo como usar um e como usar o outro.

O tipo normal é o mais comum como o próprio nome sugere, você faz um relacionamento de muitos pra muitos de uma tabela pra outra, ou seja, você diz que o campo da tabela em que está criando o relacionamento deve ser preenchido com os dados da tabela “Pai” e que caso algum dado seja inserido e não conste na tabela “Pai” o sistema deve negar.

Gosto muito de utilizar o conceito de tabela pai e filho, porque ao meu ver fica mais fácil de explicar, para isso, vou dar um exemplo:

Tabela Pai = Tabela de Itens (InventTable)
Tabela Filho = Tabela de linhas do pedido (SalesLine)

A tabela filho só pode receber itens que constem na tabela pai, e uma das soluções para isso é usar o relacionamento normal.

Agora vamos falar do Related.

O Related é uma forma de filtar os registros que você pode usar quando estiver falando de relacionamentos pai pra filho. Imagine que você tem um relacionamento em uma nova tabela, essa tabela foi criada para exibir apenas Serviços, ou seja, você também vai usar a InventTable, mas quer apenas os registros onde o tipo do item seja igual a Serviço, é neste caso que você usará o tipo Related.

Tabela pai:
ItemID, ItemType
Onde ItemType pode ser 1 para itens e 2 para serviços;

Tabela Filho:
ItemType, ItemId, Quantidade.

Na tabela filho faremos dois relacionamentos, o primeiro será um normal que liga o ItemId da tabela filho com o itemId da tabela pai, já o segundo e ai usamos o related iremos dizer que o campo ItemType da tabela pai terá que ser do tipo “serviço” e ai quando fizermos o lookup na tabela filho só veremos os registros que são do tipo serviço.

Espero ter ajudado!

[]s
Ricardo Pichler

Fonte.