我正在开发一个程序,用于登记投诉。有三种类型的投诉:internal
(员工错误)、external
(另一家公司的错误)和supplier
(供应商的错误)。它们包含不同的数据,不能共享。当前有4张表(complaint、employee、company和supplier)。以下是这些表的可视化:
我对子类型有基本的了解,但我似乎无法将它们从ERD翻译成实际的SQL Server数据库,至少在这种情况下是这样。这大致是这4个表的样子(省略了不相关的属性):
Complaint
ComplaintId PK
Employee
EmployeeId PK
EmployeeName
Company
CompanyId PK
CompanyName
Supplier
SupplierId PK
SupplierName
当登记投诉时,错误由其中的3种类型之一造成,它们都存储不同的信息。在这种情况下,存储信息的最佳方法是什么?我考虑过在Complaint-table中放置2个鉴别器:ComplaintType
和Id
,以便可以指向要检查的表和需要的ID,但这并不太清晰也不高效。
请协助解答。