在我的系统中,许多实体都需要附件。
例如,Mission实体需要自己的附件,还有活动,项目等。
问题是如何设计附件表?
我是否知道如何创建一个服务于整个系统的通用附件表?
答案 0 :(得分:0)
我只有一个附件表和一个表来说明实体。例如:
Entities Table:
==============
EntityId
EntityName
Attachments Table:
=================
AttachmentId
EntityId
Attachment
答案 1 :(得分:0)
如果您需要通用附件表,则可以执行以下操作:
create table attachments
(attachment_id int not null,
parent_id int not null,
parent_type varchar(32) not null,
other_cols_here,
primary key(attachment_id))
这将允许您拥有独立的实体表(因此您不必总是在某些通用表中有一行用于任务,活动等)。要查找任务的附件,您必须执行:select * from attachments where parent_id = MISSION_ID and parent_type = 'mission'
当然,缺点是您放弃了对parent_id的任务表具有外键约束的能力。