Продукты продаются на веб-сайте в течение ограниченного периода времени.
Каждая продажа начинается с DATE
, заканчивается на DATE
и содержит хотя бы один продукт.
Каждый продукт связан с идентификатором № продажи, к которой он принадлежит.
Иногда существует короткий период времени, в течение которого нет товаров внутри продажи, потому что менеджер создал продажу, но не завершил привязку продуктов кпродажи пока нет, поэтому я должен отфильтровывать продажи без каких-либо продуктов внутри при отображении списка предстоящих продаж, или это сбивает с толку пользователей.
В моей модели Sale
я придумал это, когдаЯ не очень знаком с ActiveRecord:
def upcoming_sales
find_by_sql(["SELECT DISTINCT sales.* from sales, products WHERE products.sale_id = sales.id AND sales.start_at > ? AND sales.start_at < ? ORDER BY sales.start_at ASC", Time.now, (Time.now + END_AT)])
end
Я полагаю, что приведенный выше SQL является стандартным ANSI SQL, который должен работать практически на любом сервере баз данных, но может ли он быть сделан с ActiveRecord вместо этого?
Помимо того, что он удобен для пользователей, не являющихся пользователями SQL, есть ли какие-либо преимущества в переделке с помощью ActiveRecord?
Какой способ лучше с точки зрения производительности?