Qual é a maneira correta de implementar um 'modelo de festa' com os vários papéis que as partes desempenham?

Um dos programas em que estamos trabalhando está crescendo e estamos em um estágio em que podemos revisitar o banco de dados existente e passar um tempo 'tentando acertar'. Uma das coisas que estamos vendo é o modelo de dados e como modelamos 'partes', entre outras coisas. Até agora, decidimos determinar os detalhes do cliente nos registros de transações, mas agora queremos armazenar mais detalhes e gostaríamos de combinar os dados comuns que temos para funcionários, fornecedores e membros, etc.

Cada parte é um indivíduo ou um grupo, mas também pode ter uma ou mais funções, como empregador, cliente, membro, etc. Percebo que várias partes em nosso modelo não existem sem um relacionamento com outra parte (a equipe precisa um empregador, um cliente precisa de uma empresa para comprar, os membros precisam de um clube, etc.) e como eu não quero que as pessoas adicionem relacionamentos tolos como 'empregador-cliente' ou 'sócio-subcontratado', agora tenho uma tabela chamadarelationship que pré-define quais funções podem ser combinadas. Eu não vi isso antes e me pergunto, estamos no caminho certo? (Aqui está um diagrama EER simplificado para mostrar como achamos que isso pode ser representado)

Examinei várias documentações sobre os princípios do modelo de festa, mas não consegui encontrar nenhum exemplo (de código aberto) de como ele realmente se parece na prática. Alguém pode recomendar uma fonte (preferencialmente no MySQL) ou compartilhar sua experiência em como implementá-la, talvez com a estrutura da tabela ou o código do aplicativ

questionAnswers(1)

yourAnswerToTheQuestion