需要有关模型的建议 - 帖子,类别,标签

时间:2011-06-14 11:17:31

标签: ruby-on-rails class-design

我想创建像博客一样的东西。

帖子必须属于某个类别。每个类别都有许多标签(或子类别?)。帖子可以有标签(可选)。

这是最好的方法吗?

Category
 has_many :tags
 has many :posts


Tag
 belongs_to :category
 has_and_belongs_to_many :posts


Post
 belongs_to category
 has_and_belongs_to_many :tags

2 个答案:

答案 0 :(得分:0)

我会改用polymorhic associations。这样可以很好地控制标签集(标签数量,可用标签等),但会降低基于标签的搜索速度。

另一种方法是使用您选择的数据库中的全文搜索功能。 这将为您提供基于标签的快速搜索,但标签设置操作速度较慢。

答案 1 :(得分:0)

由于你给出的模型的模式几乎就是你所写的句子的精确翻译,是的,它应该是最好的方式!
对于标签,您可能希望使用插件,请参阅:tagging plugins list order by ranking