Relacionamentos entre tabelas diferenciado

Boa noite!

Estou bolando a estrutura de um banco de dados, e pensando em criar um estrutura que acredito não ser comum, mas de alguma forma tenho a impressão de que funcione bem e facilite a manutenção.

Um exemplo comum: produtos e fornecedores (digamos que um fornecedor pode ter vários produtos). O normal é colocar o id do fornecedor na tabela de produtos.

O que penso é fazer é retirar o id do fornecedor da tabela de produtos, e criar uma terceira tabela, apenas para fazer o link entre os dois registros, similar ao funcionamento do relacionamento de muitos para muitos. neste caso, eu utilizaria chaves primárias compostas para controlar relacionamentos um-para-um ou chaves únicas para relacionamentos um-para-muitos.

Resumidamente, imagino utilizar em qualquer hipótese esta estrutura, independente do tipo de relacionamento. Sei que o número de tabelas aumentará, mas imagino que as tabelas ficarão mais limpas, sem ter de guardar referências a outras tabelas, deixando esta responsabilidade para estas tabelas adicionais dedicadas somente ao link.

Gostaria de ouvir a opnião para saber se a idéia é péssima, e porque?

Olá,
no caso do relacionamento de um para muitos não acho que haja esta necessidade. Até vejo como não sendo uma boa política.

Usando uma tabela para auxiliar para este tipo de relacionamento pode até aumentar a legibilidade das estruturas, mas em compensação aumenta a complexidade na manutenção do banco e a quantidade de dados que deverão ser armazenados. No desempenho, se implementado corretamente o esquema de chaves, não devem haver mudanças significativas.

O único pró que vejo neste caso é que poderá ser “facilmente” suportado o relacionamente de muitos para muitos.

Att.