我正在设计一个有几个表的数据库;常见问题解答、公告和附件。公告和常见问题解答可能有一个与之关联的附件,所以我最初的想法是创建一个连接表,其中两个主键作为复合键:
Bulletin
--------
BulletinID
Subject
Description
Notes
Attachment
-----------
AttachmentID
FileName
FilePath
etc.
加入表:
BulletinAttachments
-------------------
BulletinID
AttachmentID
当我设计这个时,我还想,如果稍后引入其他需要附件的实体(比如 Newsletter、Email 等)怎么办。我必须为这些实体中的每一个创建一个连接表。不可怕,但它让我想,如果我摆脱连接表并将 AttachmentType 放入 Attachment 表中,然后相应地分配类型:
AttachmentType
--------------
AttachmentTypeID
AttachmentType
Description
该表中的数据为:
1-公告
2-常见问题
3-新闻通讯
4-电子邮件
然后 Attachment 表将保存 AttachmentTypeID 来识别它:
Attachments
-----------
AttachmentID
AttachmentTypeID
FileName
FilePath
etc.
所以我的问题是,出于性能方面的考虑(使用 SQL 2008 R2),两者之间有更好的选择吗?有没有更好的方法来设计这个?我对使用单独的连接表的担忧是,我们可能会有更多的实体出现并容纳附件,我们必须创建一个连接表,并且在我们的前端软件上,我们必须为其编写逻辑,而 AttachmentTypeID 将允许前端插入一个新的 AttachmentType 并且不需要数据库交互。