我正在研究一种向系统实施“上传附件”功能的方法。这些附件可以应用于2个区域,即调查答案和员工行动。我想要一个链接表,因为我想要一种实现附件存储库的方法,因此它们可以应用于答案和操作,而不必再次上传相同的文档。我可以简单地创建一个链接表,例如:
INT - AttachmentId
INT - AppliesTo - >系统中的枚举(如果是答案,则为1,如果为操作,则为2)
INT- AppliesToId - >动作或答案的ID
这是一个糟糕的设计吗?我有一种感觉,我会以错误的方式解决这个问题。
这是我的第一篇文章,如果它没有达到标准,那么就是这样了!
非常感谢,
克里斯
答案 0 :(得分:0)
这不是一个糟糕的设计,但你可能会发现这个设计更有用:
Attachment
AttachmentId (pkey)
Answer
AnswerId (pkey)
AttachmentId (fkey)
Action
ActionId (pkey)
AttachmentId (fkey)
这使您可以让没有操作的附件,而不将数据值设置为NULL
,并且siple连接显示相同附件的所有操作和答案,而不是条件连接
(伪代码)
select * from Attachment
outer join Answer on Answer.AttachmentId = Attachment.AttachmentId
outer join Action on Action.AttachmentId = Attachment.AttachmentId
如果操作/答案可以有多个与之关联的附件,那么您可以修改此附件以包含交叉连接:
Attachment
AttachmentId (pkey)
Answer
AnswerId (pkey)
Action
ActionId (pkey)
AttachmentAnswer
AttachmentAnswerId (pkey)
AttachmentId (fkey)
AnswerId (fkey)
AttachmentAction
AttachmentActionId (pkey)
AttachmentId (fkey)
ActionId (fkey)