商店论坛帖子回复

时间:2009-06-23 14:08:41

标签: sql database-design forum join

我正在建立一个论坛。

我要将id,主题,日期,海报存储在名为topics的表中,并将内容保存在名为posts的表中。现在我只需要很好地加入他们。

我该如何将帖子与主题联系起来?

您如何看待这种方法?

3 个答案:

答案 0 :(得分:2)

通过将TopicID与每个Post记录一起存储来连接它们。正如艾伦所说,睡在那个想法上。

答案 1 :(得分:2)

我同意OrbMan。您还应该使用相同的主键连接到用于存储注释/回复的表

答案 2 :(得分:0)

你没有提到'post'作为你问题中的一个字段,所以我假设你想把它保存在一个单独的表中。

您可以通过查询链接两个表(“帖子”和实际包含帖子[假设'posttext']的帖子,其中帖子存储在字段'postcontent'中): 选择posts.subject,posts.date,posts.poster,posttext.postcontent 来自帖子,posttext WHERE posts.id = posttext.id;

此id字段可以是存储帖子时生成的任何字符串,自动编号或哈希。 例如,您可以对帖子文本进行哈希处理,并将此哈希值存储为两个表中的唯一性。

但我建议将postcontent放入'posts'表中,从而节省两项工作:

  1. 在两个表中存储ID都将消失 - >这意味着每个表的两个查询现在减少到只有一个查询(访问和写入时),因此节省了服务器时间。
  2. 数据库大小会略微减少,因为只使用一个索引。因为只有一张桌子而不是两张。