我应该如何建模嵌套注释线程?

时间:2011-03-12 22:31:05

标签: ruby-on-rails model

您好 我正在实现一个嵌套帖子线程的论坛(reddit样式) 线程和评论可以投票。 线程可以被标记 线程有标题,评论没有 我的观点通常只需要生成整个评论树的3个级别的子集。

我想知道我是否应该为线程创建一个单独的表模型,或者只使用表,其中root = 0,如果它是一个线程记录

在后一个选项中,我正在考虑创建一个代表线程的tabless模型(id将是根注释的id

实施它的最简单方法是什么?

编辑:

这就是我正在考虑的第二种选择。线程和帖子应该有什么关系?应该是一个资源吗?

class Thread 
  include ActiveModel::Validations

  attr_accessor :root_post_id, :depth
end

class Post < ActiveRecord::Base
  belongs_to :user
  belongs_to :post
  #belongs_to :thread ?????

  acts_as_tree

  acts_as_taggable_on :topics 
end

1 个答案:

答案 0 :(得分:0)

实现的一种方法是在同一个表中同时包含线程和回复。

ID | THREADID

可以自动生成ID字段。 THREADID字段获取线程的ID,它始终是线程中的第一个帖子,所有其他答复将继承相同的ID。

因此,根帖是ID == THREAD,而回复是ID!= THREADID。