Como aplico subtipos em um banco de dados do SQL Server?

Estou trabalhando em um programa no qual você pode registrar reclamações. Existem três tipos de reclamações:internal (erros dos funcionários),external (erros de outra empresa) esupplier (erros cometidos por um fornecedor). Eles mantêm dados diferentes que não podem ser compartilhados. Atualmente, tenho 4 tabelas (reclamação, funcionário, empresa e fornecedor). Aqui está uma visualização das tabelas:

Eu tenho um entendimento básico de subtipos, mas não consigo convertê-los de um ERD em um banco de dados real do SQL Server, ou pelo menos nesse cenário. É assim que as 4 tabelas ficam (atributos irrelevantes omitidos):

Queixa
PK ComplaintId

Empregado
EmployeeId PK
Nome do empregado

Companhia
CompanyId PK
Nome da empresa

Fornecedor
SupplierId PK
Nome do Fornecedor

Ao registrar uma reclamação, o erro é cometido por um dos três tipos e todos eles armazenam informações diferentes. Qual é a melhor maneira de armazenar informações neste caso? Pensei em colocar 2 discriminadores na tabela de reclamações:ComplaintType eId para que eu possa apontar para qual tabela verificar e qual identificação preciso, mas isso não é muito limpo nem eficiente.

Por favor, ajude.

questionAnswers(5)

yourAnswerToTheQuestion