ฉันแน่ใจว่าฉันไม่ใช่คนเดียวที่ได้รับความผิดหวังเมื่อพวกเขาเห็นหน้าของรหัสเกลื่อนไปด้วยแบบสอบถาม SQL ActiveRecord และรูปแบบ ORM อื่น ๆ ช่วยลดจำนวน SQL ที่ใช้ในโครงการได้ดี แต่ในหลาย ๆ กรณีของการสืบค้นที่ซับซ้อนการใช้ SQL นั้นดูเหมือนจะหลีกเลี่ยงไม่ได้
ฉันกำลังมองหาความคิดเห็นเกี่ยวกับวิธีจัดระเบียบแบบสอบถาม SQL ด้วยส่วนที่เหลือของรหัส (หรือภายนอก) เพื่อป้องกันไม่ให้ถูกกระจายไปทั่วสถานที่? แนวคิดหนึ่งที่เห็นได้ชัดคือการใช้ Views แต่บ่อยครั้งที่ Views สามารถเป็นแหล่งที่มาของปัญหาประสิทธิภาพเมื่อต้องจัดการกับตารางที่มีดัชนีขนาดใหญ่หลาย ๆ ตัวเป็นต้น
แก้ไข 1 - ฉันสมมติว่าคุณได้แยกมันออกเป็นเลเยอร์โมเดลแล้ว