PlusMagi's Blog By Pitt Phunsanit Database สำนักงานราชบัณฑิตยสภา: บุพสัญญา (“) – ใช้แทนคำหรือข้อความบรรทัดบนที่ซ้ำกัน

สำนักงานราชบัณฑิตยสภา: บุพสัญญา (“) – ใช้แทนคำหรือข้อความบรรทัดบนที่ซ้ำกัน

สำนักงานราชบัณฑิตยสภาแห่งประเทศไทย เป็นหน่วยงานหลักที่กำหนดมาตรฐานทางภาษาไทย การใช้เครื่องหมายวรรคตอนและไวยากรณ์ที่ถูกต้องจึงเป็นหัวใจสำคัญของการสื่อสารที่เป็นทางการและงานวิชาการระดับสูง หนึ่งในหลักการที่ผู้เขียนมักมองข้ามคือ ‘บุพสัญญา’ (“) ซึ่งไม่ใช่แค่เครื่องหมาย แต่คือกลไกทางภาษาที่บ่งชี้ถึงการลดรูปข้อความหรือคำที่ซ้ำกัน

วัตถุประสงค์หลักของบุพสัญญาคือการหลีกเลี่ยงการเขียนวลีหรือชุดข้อมูลเดียวกันซ้ำ ๆ กันหลายครั้งในเอกสารที่มีโครงสร้างยาว เช่น รายงานวิจัย หรือบทความทางเทคนิค เพื่อรักษาความกระชับ ความเป็นมืออาชีพ และไม่ทำให้ผู้อ่านรู้สึกเบื่อหน่ายจากการเห็นข้อความเดิม ๆ ซ้ำ ๆ กัน

บุพสัญญาในมุมมองของ System Architect: การลดความซ้ำซ้อนของโค้ด

ในฐานะ System Specialist ที่ต้องจัดการกับระบบฐานข้อมูลขนาดใหญ่ (เช่น PostgreSQL) เราจะเข้าใจหลักการนี้อย่างลึกซึ้ง เพราะการเขียนโค้ดที่ซ้ำซ้อน (Code Duplication) ไม่เพียงแต่ทำให้โค้ดอ่านยาก แต่ยังทำให้การบำรุงรักษา (Maintenance) เป็นไปได้ยากยิ่ง

หากเปรียบเทียบการใช้บุพสัญญากับการเขียน SQL ที่ซับซ้อน เราจะเห็นความคล้ายคลึงกับเทคนิค Common Table Expressions (CTEs) หรือการใช้ `WITH` clause ใน PostgreSQL ซึ่งเป็นกลไกที่ช่วยให้เราสามารถกำหนดชุดข้อมูลหรือชุดตรรกะที่ซับซ้อนเพียงครั้งเดียว แล้วนำชุดข้อมูลนั้นไปอ้างอิง (Reference) ในส่วนอื่น ๆ ของคำสั่ง SQL ได้หลายครั้ง โดยไม่ต้องเขียนโค้ดบล็อกเดิมซ้ำ

ตัวอย่างการลดความซ้ำซ้อนด้วย PostgreSQL CTE

สมมติว่าเรามีตารางข้อมูลผู้ใช้ (users) และต้องการคำนวณสถานะการซื้อสินค้าที่ซับซ้อน ซึ่งการคำนวณนี้ต้องถูกนำไปใช้ในส่วนของการสรุปรายงานหลายส่วน การใช้ CTE จะช่วยให้เรากำหนดตรรกะการคำนวณนี้เพียงครั้งเดียว:

SQL

-- 1. กำหนดชุดข้อมูลที่ซับซ้อนเพียงครั้งเดียว (เทียบเท่าการกำหนดบุพสัญญา) --
WITH calculated_user_status AS (
    SELECT
        user_id,
        COUNT(order_id) AS total_orders,
        SUM(amount) AS total_spent
    FROM
        orders
    GROUP BY
        user_id
)
-- 2. นำชุดข้อมูลที่กำหนดไว้ไปใช้ในคำสั่งหลักหลายส่วน (เทียบเท่าการใช้บุพสัญญา)
SELECT
    u.username,
    c.total_orders,
    c.total_spent
FROM
    users u
JOIN
    calculated_user_status c ON u.user_id = c.user_id
WHERE
    c.total_spent > 1000;

ในตัวอย่างนี้, `calculated_user_status` คือชุดข้อมูลที่ถูกกำหนดขึ้นมาเพื่อใช้ซ้ำ (เหมือนการใช้บุพสัญญา) ทำให้โค้ดสะอาดและมีประสิทธิภาพสูง (Maintainable) ไม่ว่าเราจะเพิ่มเงื่อนไขการกรองข้อมูลในส่วนใด เราก็เพียงแค่เรียกใช้ CTE นี้ซ้ำ โดยไม่ต้องเขียนคำสั่ง `SELECT … FROM orders GROUP BY …` ซ้ำอีกครั้ง

บทสรุป: การใช้บุพสัญญาเพื่อความเป็นมืออาชีพ

ไม่ว่าจะเป็นการเขียนบทความวิชาการ การเขียนโค้ดฐานข้อมูล หรือการออกแบบระบบที่ซับซ้อน หลักการของการลดความซ้ำซ้อนถือเป็นสิ่งสำคัญสูงสุด การใช้บุพสัญญา (“) ในงานเขียนภาษาไทยจึงเป็นมากกว่าแค่เครื่องหมาย แต่คือการแสดงออกถึงความเข้าใจในหลักการทางภาษาที่ช่วยให้งานเขียนมีความกระชับ อ่านง่าย และดูเป็นมืออาชีพอย่างแท้จริง