กลยุทธ์ในการหลีกเลี่ยง SQL ในตัวควบคุมของคุณ ... หรือฉันควรมีกี่วิธีในแบบจำลองของฉัน
ดังนั้นสถานการณ์ที่ฉันพบเจอบ่อยพอสมควรคือสถานการณ์ที่แบบจำลองของฉันเริ่มต้นด้วย: เติบโตเป็นสัตว์ประหลาดด้วยวิธีตันและตัน หรือ อนุญาตให้คุณส่งชิ้นส่วนของ SQL ไปยังพวกเขาเพื่อให้พวกเขามีความยืดหยุ่นเพียงพอที่จะไม่ต้องใช้วิธีการที่แตกต่างกันนับล้าน ตัวอย่างเช่นสมมติว่าเรามีโมเดล "วิดเจ็ต" เราเริ่มต้นด้วยวิธีการพื้นฐานบางอย่าง: ได้รับ ($ ID) แทรก ($ บันทึก) อัปเดต ($ id, $ บันทึก) ลบ ($ ID) getList () // รับรายการวิดเจ็ต ทั้งหมดนี้เป็นเรื่องที่ดีและสวยงาม แต่จากนั้นเราต้องการรายงาน รายการสร้างระหว่าง ($ start_date, $ end_date) รายการซื้อระหว่าง ($ start_date, $ end_date) listOfPending () จากนั้นการรายงานเริ่มซับซ้อนขึ้น: listPendingCreatedBetween ($ start_date, $ end_date) listForCustomer ($ CUSTOMER_ID) …