PlusMagi's Blog By Pitt Phunsanit Database WSL: Creating links shortcut

WSL: Creating links shortcut

ในโลกของการพัฒนาซอฟต์แวร์ที่ใช้ฐานข้อมูล การสร้างความสัมพันธ์ระหว่างข้อมูล (Data Linking) เป็นสิ่งสำคัญอย่างยิ่ง การอ้างอิงข้อมูลที่ถูกต้องและมีประสิทธิภาพเปรียบเสมือนการสร้าง ‘Shortcut’ ที่ช่วยให้เราเข้าถึงชุดข้อมูลที่เกี่ยวข้องได้อย่างง่ายดายและปลอดภัย

สำหรับผู้ที่ใช้ PostgreSQL การสร้าง ‘ลิงก์’ ไม่ได้หมายถึงการสร้างไฟล์ shortcut ในระบบปฏิบัติการ แต่หมายถึงการสร้างกลไกทางตรรกะ (Logical Mechanism) เพื่อให้มั่นใจว่าข้อมูลในตารางหนึ่งอ้างอิงไปยังข้อมูลที่ถูกต้องในอีกตารางหนึ่ง บทความนี้จะเจาะลึกถึงวิธีการสร้าง Data Link ที่แข็งแกร่งที่สุดใน PostgreSQL โดยใช้หลักการของ Foreign Keys และ Views

🔗 Foreign Keys: การสร้างลิงก์ทางโครงสร้าง (Structural Links)

Foreign Key (FK) คือกลไกหลักที่ใช้ในการสร้างความสัมพันธ์ระหว่างตาราง (Relationship) มันทำหน้าที่เป็นเหมือนการผูกมัด (Constraint) ที่บังคับให้ข้อมูลในคอลัมน์หนึ่งต้องมีอยู่จริงใน Primary Key ของตารางอื่น การใช้ FK ไม่เพียงแต่ช่วยให้เราสร้าง ‘ลิงก์’ ได้เท่านั้น แต่ยังช่วยรักษาความสมบูรณ์ของข้อมูล (Data Integrity) ของฐานข้อมูลทั้งหมดด้วย

ตัวอย่างการใช้งาน Foreign Key:

สมมติว่าเรามีตาราง ‘Products’ และ ‘Orders’ เราต้องการให้ทุกคำสั่งซื้อต้องอ้างอิงถึงรหัสสินค้าที่มีอยู่จริงเท่านั้น

SQL

-- 1. สร้างตารางหลัก (Parent Table) ที่มี Primary Key<br>CREATE TABLE products ( <br>    product_id SERIAL PRIMARY KEY, <br>    product_name VARCHAR(100) NOT NULL, <br>    price NUMERIC(10, 2) <br>);<br><br>-- 2. สร้างตารางที่อ้างอิง (Child Table) โดยใช้ Foreign Key<br>CREATE TABLE orders ( <br>    order_id SERIAL PRIMARY KEY, <br>    product_id INT, <br>    quantity INT, <br>    order_date DATE DEFAULT CURRENT_DATE, <br>    -- กำหนด Foreign Key เพื่อผูกกับตาราง products <br>    CONSTRAINT fk_product_id FOREIGN KEY (product_id) REFERENCES products(product_id) <br>);<br><br>-- ตัวอย่างการใส่ข้อมูล (ต้องใส่ product_id ที่มีอยู่จริงเท่านั้น)<br>INSERT INTO products (product_name, price) VALUES ('Laptop', 1200.00);<br>INSERT INTO orders (product_id, quantity) VALUES (1, 2);

✨ Views: การสร้างลิงก์เสมือน (Virtual Shortcuts)

หาก Foreign Key คือการสร้างลิงก์ทางโครงสร้างที่บังคับใช้กฎเกณฑ์ View คือการสร้าง ‘Shortcut’ เชิงตรรกะ (Logical Shortcut) View ไม่ได้เก็บข้อมูลจริง แต่เป็นคำสั่ง SELECT ที่ถูกบันทึกไว้ เมื่อเราเรียกใช้ View มันจะทำงานเหมือนการรันคำสั่ง SELECT นั้นซ้ำเสมอ ทำให้เราสามารถซ่อนความซับซ้อนของ JOIN หรือการคำนวณที่ยาวนานไว้เบื้องหลังชื่อ View ที่สั้นและเข้าใจง่าย

ตัวอย่างการใช้งาน View:

SQL

-- สมมติว่าเราต้องการ View ที่แสดงเฉพาะชื่อสินค้าและยอดรวมของคำสั่งซื้อทั้งหมด<br>CREATE VIEW product_sales_summary AS <br>SELECT <br>    p.product_name, <br>    SUM(o.quantity) AS total_sold, <br>    p.price * SUM(o.quantity) AS total_revenue <br>FROM <br>    orders o <br>JOIN <br>    products p ON o.product_id = p.product_id <br>GROUP BY <br>    p.product_name; <br><br>-- การเรียกใช้ View เหมือนการเรียกใช้ตารางปกติ<br>SELECT * FROM product_sales_summary;

✅ บทสรุป: การเลือกใช้ Data Link ที่เหมาะสม

ในฐานะ Senior Architect การเข้าใจความแตกต่างระหว่าง Foreign Key และ View เป็นสิ่งสำคัญอย่างยิ่ง:

  • ใช้ Foreign Key เมื่อ: คุณต้องการบังคับใช้ความถูกต้องของข้อมูล (Data Integrity) ในระดับโครงสร้าง (Structural Integrity)
  • ใช้ View เมื่อ: คุณต้องการสร้างมุมมองที่ง่ายต่อการเข้าถึง (Simplified Access) หรือซ่อนความซับซ้อนของคำสั่ง SQL ที่ต้องใช้ JOIN หรือการคำนวณที่ซับซ้อน

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