puz*_*led 7 sql-server database-design
要求是存储不同实体类型的附件.
假设我们有3个实体类型Company,Department和Employee.每个都可以有多个附件(文档).
哪种方法最好?
解决方案1:
公司表
部门表
员工表
AttchmentType表
附件表
优点:我将来可以轻松添加新的实体类型
缺点:在这种情况下,我不能在实体和附件之间保持外键关系.
解决方案2:
公司表
部门表
员工表
公司附件表
DeptAttachments表
EmployeeAttachments表
优点:外键完整性
缺点:为了添加新实体,我需要单独添加新的附件表.
那么假设我将来可能需要添加新实体的最佳方式是哪种?
编辑1:
谢谢你们的回复.
如果我想使用解决方案2,我会发现在附件表中创建新列更容易,而不是为每个实体创建新的附件表来映射它们?就像是,
公司表
部门表
员工表
附件
我在这里错过了什么吗?
我肯定会选择解决方案#2.你解决方案#1的专业人士并不是专业人士.如果添加新实体,则必须已经为该实体添加新表,并且您已经在添加或更改现有代码以处理它.您应该能够创建一些处理模式的通用对象,以便重复的代码不是问题.
小智 3
我投票支持解决方案 2,因为这样您就可以以适当的方式强制执行引用完整性。此外,您可以轻松(如果需要)添加特殊附件的字段(例如 EmployeeAttachments 可能有一个位字段“PersonalPicture”或类似字段)