產品在限定的時間內在網站上銷售。我需要在Rails ActiveRecord中重寫這個SQL查詢嗎?
每筆銷售開始於DATE
,結束於DATE
,幷包含至少一個產品。
每個產品都與它所屬的銷售ID#相關聯。
有時銷售內沒有產品的時間很短,因爲經理創建了銷售,但尚未完成與銷售的關聯產品,因此我必須在顯示產品時過濾掉沒有產品的銷售即將到來的銷售清單,否則會混淆用戶。
在我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還有什麼好處?
哪種方式更好,性能明智?