我的 rails 应用程序中有一个产品模型,产品表中有一个类别列,用逗号分隔。我想创建一个连接表(product_categories),以便类别不再以逗号分隔(使其更容易计数等)。我计划在产品表上按 id 加入,并在加入表上有 id、product_id 和类别。
运行迁移以创建连接表是最佳实践,还是应该生成模型然后运行迁移以创建连接表?
我正在运行rails 3.1.0。
我的 rails 应用程序中有一个产品模型,产品表中有一个类别列,用逗号分隔。我想创建一个连接表(product_categories),以便类别不再以逗号分隔(使其更容易计数等)。我计划在产品表上按 id 加入,并在加入表上有 id、product_id 和类别。
运行迁移以创建连接表是最佳实践,还是应该生成模型然后运行迁移以创建连接表?
我正在运行rails 3.1.0。
任何一种方法都可以工作;这基本上是 has_many :through 和 has_and_belongs_to_many 之间的区别。
如果您需要将连接本身作为模型进行交互(例如,对其进行验证、添加其他元数据等),那么您应该为连接生成一个模型,并将关系定义为 has_many :through。
但是,在您的情况下,您似乎不需要添加有关给定产品类别连接的额外信息,因此为连接表创建迁移并使用 has_and_belongs_to_many 关系可能更有意义。