Как применить подтипы в базе данных SQL Server?

Я работаю над программой, в которой вы можете регистрировать жалобы. Есть три типа жалоб:internal (ошибки от сотрудников),external (ошибки другой компании) иsupplier (ошибки, допущенные поставщиком). Они содержат разные данные, которые не могут быть переданы. В настоящее время у меня есть 4 таблицы (жалоба, сотрудник, компания и поставщик). Вот визуализация таблиц:

У меня есть базовое понимание подтипов, но я не могу перевести их из ERD в реальную базу данных SQL Server или, по крайней мере, в этом сценарии. Примерно так выглядят 4 таблицы (нерелевантные атрибуты опущены):

жалоба
Жалоба ПК

Работник
EmployeeId PK
Имя сотрудника

Компания
CompanyId PK
Название компании

поставщик
SupplierId PK
Наименование поставщика

При регистрации жалобы ошибка совершается одним из трех типов, и все они хранят различную информацию. Каков наилучший способ хранения информации в этом случае? Я подумал о том, чтобы поместить 2 дискриминатора в таблицу жалоб:ComplaintType а такжеId поэтому я могу указать, какую таблицу проверить и какой Id мне нужен, но это не очень чисто и не эффективно.

Пожалуйста помогите.

Ответы на вопрос(5)

Ваш ответ на вопрос