我有 3 种数据类型——a)公共列 b)层次结构——并且想知道如何设计数据库。
假设在顶层,有一个讨论。其中有 DiscussionMessages、Files 和 Comments。它们都有共同的字段(UserID、CreateDate、Text),但也有唯一的列(FileName、ContentType 等)。评论可以与任何类型(甚至是其他评论)相关联,并且与文件相关联。
在这里查看一些问题后,我想我想要类表继承——一个基表 (DiscussionParts) 来存储公共元素,然后是每种数据类型的特定表。
DiscussionParts : PartID, DiscussionID, ParentID, PartType (M,F,C), UserID, Text, CreateDate
消息:MessageID、PartID、标题
文件:FileID、PartID、FileName、ContentType
评论: CommentID, PartID, Source
ParentID 列用于跟踪层次结构。DiscussionID 是为了让用户可以在一个简单的查询中搜索他/她的所有讨论文本。
这是具有层次结构的类表继承的推荐设计吗?