Como manter as relações de chave estrangeira consistentes em um sistema de relacionamentos “em forma de diamante”

Considere esta situação: umCarro é comprado de umVendedor. Um vendedor trabalha em umSala de exposições (e em apenas um showroom). Um Showroom é afiliado a umFabricantee apenas vende carros fabricados por esse fabricante. Ao mesmo tempo, um carro é de um particularModeloe um modelo é feito por um fabricante.

Restrição R: O fabricante de um modelo de carro deve ser o mesmo fabricante que o fabricante afiliado do Showroom do vendedor do carro.

O diagrama mostra os óbvios relacionamentos de chave estrangeira.

     ---->  Manufacturer  <----
     |                        |
     |                        |
 Showroom                     |
     ^                        |
     |                      Model
     |                        ^
Salesperson                   |
     ^                        |
     |                        |
     ---------  Car  ----------

Como você aplica a Restrição R? Você pode adicionar um relacionamento de chave estrangeiraCar --> Manufacturer. No entanto, o fabricante de um carro pode ser estabelecido unindo as mesas de uma forma ou de outra em torno do "diamante", então, com certeza, isso não seria normalizado? E, no entanto, não sei de outra forma como aplicar a restrição.

questionAnswers(2)

yourAnswerToTheQuestion