我的表格中有标签栏
标签字段将包含
等数据1. PHP, Ruby on Rails
2. PHP
3. Javascript, PHP, Ruby on Rails
将此视为我的过滤器
PHP(2)
Ruby on Rails(5)
Javascript(0)
进行此标记管理的最有效方法是什么?
答案 0 :(得分:1)
标签应该规范化,然后您可以进行SQL查询,按标签分组。
这样的模特应该这样做。
class Post < ActiveRecord::Base
has_many :taggings
has_many :Tags, through: :taggings
end
class Tagging < ActiveRecord::Base
belongs_to :post
belongs_to :tag
end
class Tag < ActiveRecord::Base
has_many :taggings
has_many :posts, through: :taggings
end
答案 1 :(得分:0)
你有选择。
你有帖子,每个帖子都有很多标签,每个标签都在很多帖子中找到。内部深处是通过额外的表格完成的:您有一个posts
列表,一个tags
列表和一对post-tag
列表。性能很好,这就是关系数据库的设计目标。
因为您可能不需要在帖子及其标记的任何特定对上指定额外数据(例如,当标记被分配到帖子时,如果这可能有用),您应该使用HABTM因为它更简单。
说到每个代码的帖子计数:您可以使用名为counter_cache
的功能(请参阅上面链接的同一页面),该功能可以跟踪每个代码中有多少相关帖子。