我有3个表PrivateMessage
,Post
和Attachment
。简化结构如下:
PrivateMessage
--------------
- ID (Primary Key)
- PMContent
Post (means topic's/thread's post)
--------------
- ID (Primary Key)
- PostContent
Attachment
--------------
- ID (Primary Key)
- FileName
- Bytes
- ContentType
Post
必须是不同的表格,因此不允许将PrivateMessage
和Post
合并到一个表格中。 Attachment
表应存储有关私人消息和主题帖子中用户附件的信息。如何正确设计Attachment
表?
下面这是正确的吗?
Attachment
--------------
- ID (PK)
- PostID (FK and allow nulls)
- PrivateMessageID (FK and allow nulls)
- FileName
- Bytes
- ContentType
答案 0 :(得分:0)
尽管您的方法可行,但我会选择以下解决方案之一:
PrivateMessageAttachment
和PostAttachment
,在其中您将使用FK(id | private_message_id | attachment_id
)保留对主表的引用。这样,您将拥有以下实体:PrivateMessage
,Post
,Attachment
,PrivateMessageAttachment
,PostAttachment
。
这样,您将得到以下实体:PrivateMessage
,Post
,PrivateMessageAttachment
,PostAttachment
。