PlusMagi's Blog By Pitt Phunsanit Backend,Database DataTables: ทำ Ajax data grid table

DataTables: ทำ Ajax data grid table

ในโลกของการพัฒนาเว็บสมัยใหม่ การแสดงผลข้อมูลจำนวนมากในรูปแบบตารางที่สามารถค้นหา กรอง และจัดเรียงได้อย่างรวดเร็วถือเป็นสิ่งจำเป็นอย่างยิ่ง DataTables คือไลบรารี JavaScript ที่ได้รับความนิยมสูงสุดในการสร้าง Data Grid ที่ทรงพลัง แต่การจะทำให้ DataTables ทำงานได้อย่างมีประสิทธิภาพสูงสุดนั้น จำเป็นต้องผสานการทำงานกับระบบฐานข้อมูลที่แข็งแกร่งอย่าง PostgreSQL ผ่านกลไก Ajax

บทความนี้จะเจาะลึกถึงสถาปัตยกรรมและขั้นตอนการสร้าง Ajax Data Grid โดยใช้ PostgreSQL เป็นแหล่งข้อมูลหลัก ทำให้มั่นใจได้ว่าข้อมูลที่แสดงผลจะมีความถูกต้อง แม่นยำ และสามารถรองรับปริมาณข้อมูลขนาดใหญ่ได้อย่างไร้รอยต่อ

⚙️ หลักการทำงาน: DataTables, Ajax, และ PostgreSQL

หัวใจของการทำงานคือการที่ DataTables ไม่ได้ดึงข้อมูลทั้งหมดมาแสดงผลตั้งแต่แรก แต่จะส่งคำขอ (Request) ไปยัง Backend Endpoint (ซึ่งเราจะเขียนด้วยภาษาที่เชื่อมต่อกับ PostgreSQL) เมื่อผู้ใช้มีการโต้ตอบ เช่น การเปลี่ยนหน้า (Pagination) หรือการค้นหา (Searching) Backend จะรับค่าพารามิเตอร์เหล่านั้น (เช่น `start`, `length`, `search_term`) แล้วนำไปสร้างเป็นคำสั่ง SELECT ที่เหมาะสมกับ PostgreSQL จากนั้น PostgreSQL จะประมวลผลและส่งผลลัพธ์กลับมาในรูปแบบ JSON ซึ่ง DataTables จะนำไปแสดงผลต่อ

💡 ตัวอย่างการดึงข้อมูลด้วย PostgreSQL

สมมติว่าเรามีตารางข้อมูลสินค้า (products) และต้องการให้ DataTables ดึงข้อมูลมาแสดงผลแบบ Ajax โดย Backend จะต้องรันคำสั่ง SQL ที่รับค่าตัวแปรเข้ามา:

SQL

-- PostgreSQL Query Example for DataTables Pagination
-- $search_term: ค่าที่ผู้ใช้ค้นหา
-- $start: ลำดับเริ่มต้นของแถว
-- $length: จำนวนแถวที่ต้องการแสดง

SELECT
    id, 
    product_name, 
    category, 
    price
FROM
    products
WHERE
    product_name ILIKE '%' || $search_term || '%' -- Case-insensitive search
ORDER BY
    id
LIMIT $length OFFSET $start;

คำอธิบาย: คำสั่งนี้แสดงให้เห็นว่าเราใช้ตัวแปรที่ส่งมาจาก Ajax (ผ่าน Backend) เพื่อกรองและจำกัดจำนวนแถวข้อมูล (Pagination) ก่อนที่ PostgreSQL จะส่งชุดข้อมูลที่ถูกจำกัดแล้วกลับไปเป็น JSON

🛠️ ขั้นตอนการเชื่อมต่อทางสถาปัตยกรรม

  1. Frontend (HTML/JS): กำหนดโครงสร้างตารางและเรียกใช้ DataTables พร้อมกำหนด AJAX source URL
  2. Backend (PHP/Python/Node.js): เป็นตัวรับ Request จาก DataTables, นำค่าพารามิเตอร์ (เช่น `start`, `length`, `search`) ไปสร้างเป็นตัวแปรสำหรับ SQL
  3. Database (PostgreSQL): รับคำสั่ง SQL ที่สมบูรณ์, ประมวลผลข้อมูล, และส่งชุดผลลัพธ์กลับไป
  4. Response: Backend แปลงผลลัพธ์จาก PostgreSQL ให้เป็น JSON Format ที่ DataTables ต้องการ

✅ บทสรุป

การรวมพลังระหว่าง DataTables, Ajax, และ PostgreSQL ทำให้เราสามารถสร้าง Data Grid ที่มีประสิทธิภาพสูงและสามารถจัดการข้อมูลจำนวนมหาศาลได้โดยไม่เกิดปัญหา Performance bottleneck เนื่องจากทุกการโต้ตอบของผู้ใช้จะถูกจำกัดการดึงข้อมูลตามที่จำเป็น (Lazy Loading) ทำให้ประสบการณ์ผู้ใช้ราบรื่นและรวดเร็วอย่างแท้จริง การทำความเข้าใจการไหลของข้อมูลจาก SQL Query ไปยัง JSON Response คือกุญแจสำคัญในการเป็น Senior Architect ด้าน Data Visualization ครับ

Exit mobile version