¿Cómo aplico subtipos en una base de datos de SQL Server?

Estoy trabajando en un programa en el que puede registrar quejas. Hay tres tipos de quejas:internal (errores de los empleados),external (errores de otra compañía) ysupplier (errores cometidos por un proveedor). Contienen datos diferentes que no se pueden compartir. Actualmente tengo 4 mesas (queja, empleado, empresa y proveedor). Aquí hay una visualización de las tablas:

Tengo una comprensión básica de los subtipos, pero parece que no puedo traducirlos de un ERD a una base de datos real de SQL Server, o al menos en este escenario. Así es más o menos el aspecto de las 4 tablas (se omiten los atributos irrelevantes):

Queja
Queja ID PK

Empleado
EmployeeId PK
Nombre de empleado

Empresa
CompanyId PK
Nombre de empresa

Proveedor
Proveedor PK
Nombre del proveedor

Al registrar una queja, cualquiera de los 3 tipos comete el error y todos almacenan información diferente. ¿Cuál es la mejor manera de almacenar información en este caso? He pensado poner 2 discriminadores en la tabla de quejas:ComplaintType yId así que puedo señalar qué tabla verificar y qué Id. necesito, pero eso no es muy limpio ni eficiente.

Por favor asiste.

Respuestas a la pregunta(5)

Su respuesta a la pregunta