ในฐานะผู้เชี่ยวชาญด้านระบบข้อมูลและภาษาศาสตร์ดิจิทัล การทำความเข้าใจเรื่องการใช้ภาษาไทยที่ถูกต้องตามหลักของสำนักงานราชบัณฑิตยสภา ไม่ได้จำกัดอยู่แค่การสะกดคำ แต่รวมถึงการจัดการโครงสร้างของข้อความย่อ (เช่น ฯลฯ) ซึ่งเป็นเสมือนการจัดการชุดข้อมูล (Data Set) ที่มีรูปแบบซ้ำๆ กัน
สำหรับนักพัฒนาที่ต้องจัดการข้อมูลภาษาไทยจำนวนมาก โดยเฉพาะข้อมูลที่มาจากแหล่งต่างๆ ที่มีการใช้เครื่องหมายย่อและรายการยาวๆ การมองว่า ‘ฯลฯ’ เป็นเพียงสัญลักษณ์ทางภาษา จึงเป็นมุมมองที่จำกัดเกินไป เราต้องมองมันในเชิงของ ‘ชุดข้อความที่ถูกคั่นด้วยตัวแบ่ง (Delimiter)’ ซึ่งเป็นหลักการเดียวกับการจัดการ String ในฐานข้อมูล PostgreSQL
การเปรียบเทียบเชิงสถาปัตยกรรม: ฯลฯ กับ String Splitting ใน PostgreSQL
ในทางภาษาศาสตร์ การใช้ ‘ฯลฯ’ คือการบอกว่ามีรายการที่คล้ายกันอีกมากมายที่ถูกละไว้ แต่ในทางเทคนิคของ PostgreSQL หากเราได้รับข้อความยาวๆ ที่มีรายการที่ถูกคั่นด้วยเครื่องหมายจุลภาค (comma) หรือเครื่องหมายอื่นๆ การเก็บมันไว้ในรูปแบบสตริงเดียว (Single String) จะทำให้การค้นหาหรือการประมวลผลทำได้ยาก
ดังนั้น เราจึงต้องใช้ฟังก์ชันที่ทำหน้าที่คล้ายกับการ ‘ยุบรายการ’ ของภาษา คือการแยกสตริงยาวๆ ออกเป็นแถว (Rows) หรือรายการย่อยๆ ที่สามารถนำไปใช้งานได้จริง ซึ่งใน PostgreSQL เราใช้ฟังก์ชันที่ทรงพลังอย่าง regexp_split_to_table()
ตัวอย่างการจัดการข้อมูลรายการย่อด้วย PostgreSQL
สมมติว่าเรามีข้อมูลรายการคำศัพท์ที่ยาวมาก ซึ่งแทนการใช้ ‘ฯลฯ’ ในทางภาษา เราจะใช้ฟังก์ชันนี้เพื่อแยกมันออกเป็นแถวๆ เพื่อให้แต่ละรายการเป็นข้อมูลที่แยกจากกันอย่างชัดเจน
SQL
SELECT * FROM regexp_split_to_table('apple,banana,orange', ',');
ผลลัพธ์ที่ได้คือการแยกสตริง ‘apple,banana,orange’ ออกเป็น 3 แถว (rows) ซึ่งแต่ละแถวคือรายการย่อยที่สมบูรณ์ การดำเนินการนี้เป็นการจำลองการ ‘แยกส่วน’ ของข้อความย่อ ให้กลายเป็นโครงสร้างข้อมูลที่มีระเบียบแบบแผนตามหลักการของฐานข้อมูล
หลักการประยุกต์ใช้ในเชิงสถาปัตยกรรมข้อมูล (Data Architecture)
การใช้ regexp_split_to_table() ไม่ได้เป็นเพียงแค่การเขียนโค้ด แต่เป็นการแสดงให้เห็นถึงการคิดเชิงสถาปัตยกรรมที่เข้าใจว่า ข้อมูลที่ดูเหมือนเป็นข้อความต่อเนื่อง (Continuous Text) สามารถถูกจัดโครงสร้างใหม่ให้เป็นชุดข้อมูลที่มีความหมาย (Structured Data Set) ได้
เมื่อเราเข้าใจหลักการนี้แล้ว ไม่ว่าจะเป็นการจัดการรายการคำศัพท์ การจัดการรายการหัวข้อ หรือแม้แต่การจัดการรูปแบบการใช้ ‘ฯลฯ’ เราก็สามารถแปลงมันให้เป็นชุดข้อมูลที่ PostgreSQL สามารถ Query, Index, และ Join ได้อย่างมีประสิทธิภาพสูงสุด นี่คือการยกระดับจากการเป็นผู้ใช้ภาษา ไปสู่การเป็นสถาปนิกข้อมูลที่เข้าใจทั้งภาษาและโค้ด