Bom, estou fazendo a modelagem de um sistema, e vou utilizar Hibernate.
Tenho o seguinte até o momento: http://postimg.org/image/sjzzi5et3/
A dúvida é a seguinte: Um Paciente pode ser indicado por qualquer pessoa (seja ela, funcionario, dentista, pessoaJuridica, ou etc). Se eu fizer uma ligação de Pessoa com Paciente como o Hibernate vai entender isso ? No banco de dados ficará id_dentista, id_funcionario, id_pessoa_juridica na tabela Paciente ?
Bom nesse caso acho que você teria que usar herança com o hibernate o que não recomendo muito segui ótimo link -> http://altieresm.wordpress.com/2011/07/09/implementando-heranca-com-hibernate/
Se fosse no meu caso faria os relacionamentos nas entidade pessoafisica, funcionario , pessoajuridica e dentista.
Muito bom os tutoriais, seguinte a dica, achei a melhor forma de implementar: Tabela por Subclasse.
Posso misturar Herança + Composição da seguinte forma:
vou ter uma tabela: Pessoa, PessoaFisica e PessoaJuridica. Onde essas 2 ultimas terão referência para tabela PEssoa.
Depois vou ter uma composição com Dentista, Funcionario, Paciente com a Tabela PessoaFisica. Pois o Dentista, Funcionario e Paciente são o ID da PessoaFisica.