使用具有无限类别和无限子类别的产品创建模式

时间:2014-03-03 06:20:11

标签: ruby-on-rails database schema

我一直在研究在我正在开发的项目上为新功能开发模式的最佳方法是什么。

我的产品可以与无数个类别和无限多个子类别相关联。

当我开始感到沮丧时,我开始认为也许我只是在思考它。我想知道下面的活跃记录协会是否对你有意义,你可以预见到任何可能的陷阱。

class Product < ActiveRecord::Base
  has_many :categories
  has_many :sub_categories, through: :categories
end

class Category < ActiveRecord::Base
  belongs_to :product
  has_many :products
end

class SubCategory < ActiveRecord::Base
  belongs_to :category
end

1 个答案:

答案 0 :(得分:0)

此时,请继续使用您拥有的内容。

如果您开始在数据和行为(实例方法)中看到很多重叠,或者如果您发现自己总是希望一起访问类别和子类别,那么您可以开始查看:

  1. Self joins - 允许您将两个类别保留在同一个表格中,并保持同一类型的模型
  2. Ancestory - 全面构建数据树结构的额外灵活性