Как применить подтипы в базе данных SQL Server?
Я работаю над программой, в которой вы можете регистрировать жалобы. Есть три типа жалоб:internal
(ошибки от сотрудников),external
(ошибки другой компании) иsupplier
(ошибки, допущенные поставщиком). Они содержат разные данные, которые не могут быть переданы. В настоящее время у меня есть 4 таблицы (жалоба, сотрудник, компания и поставщик). Вот визуализация таблиц:
У меня есть базовое понимание подтипов, но я не могу перевести их из ERD в реальную базу данных SQL Server или, по крайней мере, в этом сценарии. Примерно так выглядят 4 таблицы (нерелевантные атрибуты опущены):
жалоба
Жалоба ПК
Работник
EmployeeId PK
Имя сотрудника
Компания
CompanyId PK
Название компании
поставщик
SupplierId PK
Наименование поставщика
При регистрации жалобы ошибка совершается одним из трех типов, и все они хранят различную информацию. Каков наилучший способ хранения информации в этом случае? Я подумал о том, чтобы поместить 2 дискриминатора в таблицу жалоб:ComplaintType
а такжеId
поэтому я могу указать, какую таблицу проверить и какой Id мне нужен, но это не очень чисто и не эффективно.
Пожалуйста помогите.