ทุกคนรู้ว่านักพัฒนาใหม่เขียนฟังก์ชันที่ยาวนาน ในขณะที่คุณก้าวหน้าคุณจะดีขึ้นเมื่อแบ่งรหัสของคุณออกเป็นชิ้นเล็ก ๆ และประสบการณ์สอนคุณค่าของการทำเช่นนั้น
ป้อน SQL ใช่วิธีคิด SQL เกี่ยวกับโค้ดนั้นแตกต่างจากวิธีคิดขั้นตอนเกี่ยวกับโค้ด แต่หลักการนี้ดูเหมือนว่าใช้ได้
สมมติว่าฉันมีแบบสอบถามที่ใช้แบบฟอร์ม:
select * from subQuery1 inner join subQuerry2 left join subquerry3 left join join subQuery4
ใช้ ID หรือวันที่เป็นต้น
คิวรีย่อยเหล่านั้นซับซ้อนและอาจมีคิวรีย่อยของตนเอง ในบริบทการเขียนโปรแกรมอื่น ๆ ฉันจะคิดว่าตรรกะสำหรับเคียวรีย่อยที่ซับซ้อน 1-4 อยู่ในแนวเดียวกันกับแบบสอบถามหลักของฉันที่รวมพวกเขาทั้งหมด ดูเหมือนตรงไปตรงมาว่าเคียวรีย่อยเหล่านั้นควรถูกกำหนดเป็นมุมมองเหมือนพวกมันจะเป็นฟังก์ชันถ้าฉันกำลังเขียนโค้ดโพรซีเดอร์
เหตุใดจึงไม่ปฏิบัติกันทั่วไป ทำไมผู้คนจึงเขียนแบบสอบถาม SQL แบบเสาหินยาวเหล่านี้บ่อยๆ เหตุใด SQL จึงไม่สนับสนุนการใช้มุมมองที่กว้างขวางเช่นเดียวกับการเขียนโปรแกรมตามขั้นตอนสนับสนุนการใช้ฟังก์ชันที่กว้างขวาง (ในสภาพแวดล้อมแบบองค์กรจำนวนมากการสร้างมุมมองไม่ใช่สิ่งที่ทำได้ง่ายมีคำขอและการอนุมัติที่จำเป็นลองนึกภาพหากโปรแกรมเมอร์ประเภทอื่นต้องส่งคำขอทุกครั้งที่สร้างฟังก์ชัน!)
ฉันคิดถึงคำตอบที่เป็นไปได้สามข้อ:
นี่เป็นเรื่องปกติอยู่แล้วและฉันกำลังทำงานกับคนที่ไม่มีประสบการณ์
โปรแกรมเมอร์ที่มีประสบการณ์ไม่ได้เขียน SQL ที่ซับซ้อนเพราะพวกเขาต้องการที่จะแก้ปัญหาการประมวลผลข้อมูลอย่างหนักด้วยรหัสขั้นตอน
อื่น ๆ อีก