Olá duduribeiro,
Primeiramente um feliz 2011 pra vc!
Nesse caso na minha opinião, um tempo atrás quando dei manutenção em um sistema de compras, os clientes e os fornecedores ficavam armazenados na mesma tabela pois tinham a mesma estrutura de dados cadastrais…mas o que diferenciava-os eram 2 colunas do tipo boolean onde ficava a confição de cliente ou fornecedor…
Ex. idClienteFornecedor,isCliente,isFornecedor,nomerazaoSocial,nomeFantasia,…etc…
essas duas colunas isCLiente e isFornecedor são do tipo boolean, pois um cliente seu tb pode ser um fornecedor seu e vice versa…
Mas não quer dizer que todo cliente é fornecedor e nem que todo fornecedor é cliente…
Se o dado for somente de fornecedor a coluna isCLiente fica como false e a de fornecedor obviamente fica como true e vice versa…e para o caso de ambos serem cliente e fornecedor mas true na duas…
na query de cliente vc filtra pela coluna isCliente e assim por diante…
Espero ter ajudado
Fallow