要求是存储不同实体类型的附件.
假设我们有3个实体类型Company,Department和Employee.每个都可以有多个附件(文档).
哪种方法最好?
解决方案1:
公司表
> CompanyId
部门表
> DeptId
员工表
> EmployeeId
AttchmentType表
> TypeId
>类型(公司,部门,员工)
附件表
> AttachmentId
> TypeId(映射到附件类型)
> entityId(映射到CompanyId / DeptId / EmployeeId)
优点:我将来可以轻松添加新的实体类型
缺点:在这种情况下,我不能在实体和附件之间保持外键关系.
解决方案2:
公司表
> CompanyId
部门表
> DeptId
员工表
> EmployeeId
公司附件表
> AttachmentId
> CompanyId(FK)
DeptAttachments表
> AttachmentId
> DeptId(FK)
EmployeeAttachments表
> AttachmentId
> EmployeeId(FK)
优点:外键完整性
编辑1:
谢谢你们的回复.
如果我想使用解决方案2,我会看到在附件表中创建新列更容易,而不是为每个实体创建新的附件表来映射它们?
就像是,
公司表
> CompanyId
部门表
> DeptId
员工表
> EmployeeId
附件
> AttachmentId
> CompanyId(FK)
> EmployeeId(FK)
> DepartmentId(FK)
我在这里错过了什么吗?