В ActiveRecord (который является ORM, используемым по умолчанию в Rails, но не единственным возможным), отношение has_many
обычно включает две модели и, следовательно, две таблицы. Итак, эти модели:
class Order < ActiveRecord::Base
has_many :order_items
end
class OrderItem < ActiveRecord::Base
belongs_to :order
end
... будет ссылаться на таблицы orders
и order_items
, причем последняя имеет ссылку Foreign_key order_id
на родительский порядок.
Order.find(some_id)
получит один заказ. order_items
не будет затронут, если вы не ссылаетесь на него явно или не добавляете директивы в определение класса, чтобы требовать, чтобы ассоциация всегда находилась в навигации.
Я не уверен, почему вы так обеспокоены использованием соединений. При надлежащем индексировании практически любая современная СУБД будет очень эффективной: это то, для чего они предназначены.