小编Jai*_*gus的帖子

一两张桌子代表的主题和帖子?

我目前正在为更大的应用程序构建一个论坛组件,我正在考虑对数据库模式的某些部分采用不同的方法。特别是,我正在考虑在单个表中表示主题和帖子。虽然我认为主题和帖子几乎相同,但我感到有点担心,因为这可能会使未来的事情变得不那么灵活。

当查询特定论坛的主题时,将显示标题和第一篇文章以及一些用户信息(主要是姓名和头像)。在这个应用程序中,除了视图和回复外,主题和帖子都使用了各种属性;可能还有 title 和 forum_id(forum_id,因为这意味着如果将主题更改为另一个论坛而不是更改主题关系中的 forum_id 属性,则可能需要影响数百条记录。

这些表格看起来像我在下面看到的:

TOPIC            POST           
topic_id         poster_id   
forum_id         topic_id 
poster_id        content 
title            upvote
views            dnvote
replies          closed
post_id          deleted
                 last_edited
                 last_editor
                 parent_id
                 content
                 post_id
Run Code Online (Sandbox Code Playgroud)

这样做,使用表继承,生成主题中的帖子将需要通过 TOPIC、POST、USER 和 TOPIC_TYPE 进行 4 表连接。

另一方面,如果我决定采用单表方法,如果 topic_type 是常规帖子,我是否应该简单地将 views、reply、title 和 forum_id 属性保留为 null?(topic_type 为显示的主题类型引用适当的图标,并将用于统计等。)

performance database-design query-performance

3
推荐指数
1
解决办法
454
查看次数