PlusMagi's Blog By Pitt Phunsanit Backend,Database Routing, Layouts & Form Validation (ระบบนำทาง โครงสร้างหน้าเว็บ และการตรวจสอบความถูกต้องของฟอร์มด้วย EditForm)

Routing, Layouts & Form Validation (ระบบนำทาง โครงสร้างหน้าเว็บ และการตรวจสอบความถูกต้องของฟอร์มด้วย EditForm)

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

หลักการสถาปัตยกรรมในมุมมองของ PostgreSQL

ในบริบทของ PostgreSQL ซึ่งเป็นระบบจัดการฐานข้อมูล (DBMS) เราจะตีความแนวคิดของ Routing, Layouts และ Validation ในเชิงของโครงสร้างข้อมูลและการบังคับใช้กฎเกณฑ์ (Constraints) แทนการจัดการที่ระดับ Frontend Framework

🛣️ 1. การจัดการโครงสร้างข้อมูล (Layouts & Routing)

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

SQL

-- ตัวอย่างการสร้าง View เพื่อกำหนดโครงสร้างข้อมูลหลัก (Layout) สำหรับสินค้า<br>CREATE VIEW product_overview AS<br>SELECT p.id, p.name, c.category_name, p.price<br>FROM products p<br>JOIN categories c ON p.category_id = c.id;<br>

✅ 2. การตรวจสอบความถูกต้องของข้อมูล (Form Validation)

นี่คือส่วนที่สำคัญที่สุดในการรับประกันความสมบูรณ์ของข้อมูล (Data Integrity) ซึ่งเทียบเท่ากับการตรวจสอบฟอร์ม (Form Validation) ในระดับแอปพลิเคชัน PostgreSQL มีกลไกที่ทรงพลังในการบังคับใช้กฎเกณฑ์เหล่านี้ตั้งแต่ระดับฐานข้อมูล ไม่ว่าข้อมูลจะถูกป้อนเข้ามาจากช่องทางใดก็ตาม

เราสามารถใช้ CHECK Constraints เพื่อกำหนดเงื่อนไขที่ข้อมูลต้องเป็นไปตามที่กำหนด และใช้ Triggers เพื่อรันโค้ดตรวจสอบก่อนการ INSERT หรือ UPDATE ข้อมูล

SQL

-- ตัวอย่างการเพิ่ม CHECK Constraint เพื่อให้แน่ใจว่าราคาสินค้าต้องเป็นบวก<br>ALTER TABLE products<br>ADD CONSTRAINT check_positive_price CHECK (price >= 0);<br><br>-- ตัวอย่างการใช้ Trigger เพื่อตรวจสอบว่ารหัสสินค้าต้องไม่ซ้ำกัน (Unique Check)<br>CREATE OR REPLACE FUNCTION validate_product_sku() RETURNS TRIGGER AS $$
BEGIN
    IF EXISTS (SELECT 1 FROM products WHERE sku = NEW.sku)
    THEN
        RAISE EXCEPTION 'SKU นี้ถูกใช้งานแล้ว';
    END IF;
    RETURN NEW;
END;$$ LANGUAGE plpgsql;<br><br>CREATE TRIGGER trg_validate_sku
BEFORE INSERT ON products
FOR EACH ROW
EXECUTE FUNCTION validate_product_sku();<br>

บทสรุป: การสร้างสถาปัตยกรรมที่แข็งแกร่ง

การผสานรวมหลักการของ Layouts, Routing และ Validation เข้ากับฟังก์ชันของ PostgreSQL อย่างถูกวิธี ทำให้เราสามารถสร้างระบบที่มีความน่าเชื่อถือสูง ข้อมูลจะได้รับการตรวจสอบความถูกต้องในระดับแกนหลัก (Core Layer) ของฐานข้อมูล ทำให้แอปพลิเคชันของเราไม่เพียงแต่ดูดี แต่ยังทำงานได้อย่างมั่นคงและปลอดภัยในทุกสถานการณ์ การใช้ View และ Constraints คือหัวใจสำคัญของการเป็น Senior Architect ที่เข้าใจทั้งโค้ดและโครงสร้างข้อมูลอย่างลึกซึ้ง

Exit mobile version