Pensou na ideia de utilizar o conceito de generalização/especialização dessas entidades? Clientes, Funcionários e Fornecedores se tratam de pessoas (Físicas e Jurídicas). Talvez dependendo dos campos que deseja, não há a necessidade de criar três entidades separadas e sim uma generalização e especialização de Pessoa Física e Jurídica. Pode inclusive, criar um campo do tipo de usuário colocando uma sigla F - Funcionário e C - Cliente.
Mais Posts
José.
Se sua base já existe, suas tabelas tiverem chaves independentes para cada uma das tabelas, sendo que pode ter repetição entre elas, melhor você usar o ORIGEM_ID e o ORIGEM_TABELA como chave estrangeira.
Se vc ainda estiver criando essas tabelas, a idéia da Renata é a melhor solução.
Grande abraço
Renata, no caso de ter que especialização da entidade seria dividir em Pessoa Física e Jurídica. Faço duas tabelas (Pessoa Física e Pessoa Jurídica) ou uma tabela Pessoas e crio um campo TIPO_PESSOA (pj/pf) ? da mesma maneira como faço para o tipo de usuario (fun / cli / for ) ? E os atributos especificos de cada tipo de pessoa como CPF / CNPJ , RG / IE ?
Na entidade Pessoa (que seria a entidade pai) você colocaria um identificador para poder relacionar com as entidades filhas,.Você deve criar duas tabelas filhas: Física e Jurídica. Nela, você vai colocar características específicas daquela entidade. Ou seja, CNPJ, IE , Razão Social, Nome Fantastia etc - Jurídica e CPF, RG, Nome Completo, etc em Física.
Obrigado pela ajuda. Já clareou bastante.