我们有多个必须匹配的来自不同数据源的商店列表。
商店有一个复合主键 [source, id]。匹配会在源 = 0 的商店表中创建一个单独的条目,并提取可能因源而异的值(名称、url、...)。
现在我可以将另外两列 meta_shop_source 和 meta_shop_id 添加到 shop 和一个 belongs_to :meta_shop, class_name "Shop", foreign_key: [:meta_shop_source, :meta_shop_id] 到 Shop 模型。我正在使用composite_primary_keys gem。
但是,由于 meta_shop_source 始终为 0,这似乎是在浪费空间。稍后将相同的过程用于产品,并且有数百万行,因此需要进行优化。
所以我正在寻找类似 belongs_to :meta_shop, class_name "Shop", foreign_key: [0, :meta_shop_id] 之类的东西,或者我可以覆盖的方法,这样我就不需要数据库中的 meta_shop_source 列。