一致する必要があるさまざまなデータ ソースからのショップの複数のリストがあります。
ショップには複合主キー [source, id] があります。照合により、shops テーブルに source=0 の別のエントリが作成され、ソースごとに少し異なる可能性がある値 (名前、URL など) が抽出されます。
これで、別の 2 つの列 meta_shop_source と meta_shop_id をshops に追加し、belongs_to :meta_shop, class_name "Shop",foreign_key: [:meta_shop_source, :meta_shop_id] を Shop モデルに追加できます。私はcomposite_primary_keys gemを使用しています。
ただし、meta_shop_source は常に 0 であるため、スペースの無駄に思えます。同じプロセスが後で製品に使用され、数百万行あるため、最適化が必要になります。
そのため、begs_to :meta_shop, class_name "Shop",foreign_key: [0, :meta_shop_id] のようなもの、またはデータベースに meta_shop_source 列が必要ないようにオーバーライドできるメソッドを探しています。