【问题标题】:creating a schema with products with infinite categories and infinite sub-categories创建具有无限类别和无限子类别的产品的模式
【发布时间】:2014-03-03 06:20:10
【问题描述】:

我一直在研究什么是为我正在从事的项目的新功能开发架构的最佳方法。

我将拥有可以与无数个类别和无数个子类别相关联的产品。

当我开始感到沮丧时,我开始认为也许我只是想多了。我想知道下面的活动记录关联对您是否有意义,您可以预见任何可能的问题。

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

【问题讨论】:

  • 类别上的字段和子类别上的字段有区别吗?
  • 类别或子类别之间没有重复,即可能有一个“桌子”类别,子类别为“床桌”“床头柜”
  • 但是它们有相同的数据字段吗?在您的“表格”示例中,两者都有一个名称字段。
  • 抱歉,我还不能完全确定两个表是否具有完全相同的数据字段,但很可能会有一些重叠。换句话说,它们很可能都有一个“名称”字段。

标签: ruby-on-rails database schema


【解决方案1】:

在这一点上,只要你拥有的。

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

  1. Self joins - 这可以让您将两个类别保存在同一个表中并作为相同类型的模型
  2. Ancestory - 为完整的数据树结构提供额外的灵活性

【讨论】:

    猜你喜欢
    • 2011-12-07
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多