0

我试图解决在一个小型 Rails 应用程序中创建 Shiping Zones 的问题。

数据库列出了属于用户的项目,这些项目可以出售给其他用户。两者都可以是全球性的,并且它们的原产国列在 location_countries 表中。

我目前看到的方式是会有一个运输区域表 [id, name, description] 和一个映射表 [from_country_id, to_country_id, shipping_zone_id] 两次引用 location_countries 表以确定要使用的区域规则,以及shipping_zones 表(最终参考定价矩阵)。

我遇到的问题是弄清楚这应该如何在模型文件中表示:一个 location_country 可以有多个区域,具体取决于另一个 location_country。

在我看来,这应该是直截了当的,但我也觉得我在解决这一切都是错误的。请对此有任何指示吗?

4

1 回答 1

1

我建议创建和链接类如下:

class Country

  has_many :from_mappings, :class_name => "Mapping", :foreign_key => :from_country_id
  has_many :from_countries, :through => :from_mappings

  has_many :to_mappings, :class_name => "Mapping", :foreign_key => :to_country_id
  has_many :to_countries, :through => :to_mappings
...

class Mapping

  belongs_to :shipping_zone

  belongs_to :from_country, :class_name => "Country", :foreign_key => :to_country_id
  belongs_to :to_country, :class_name => "Country", :foreign_key => :from_country_id
...

认为这应该是您的解决方案,但我可能误解了您问题的某些部分。

于 2012-09-19T13:24:24.770 回答