PlusMagi's Blog By Pitt Phunsanit Database จัดเตรียมและเคลียร์รายการทรัพย์สินของบริษัทที่ต้องส่งมอบคืน (โน้ตบุ๊ก, บัตรพนักงาน ฯลฯ)

จัดเตรียมและเคลียร์รายการทรัพย์สินของบริษัทที่ต้องส่งมอบคืน (โน้ตบุ๊ก, บัตรพนักงาน ฯลฯ)

การจัดการทรัพย์สินของบริษัท (Corporate Asset Management) เป็นกระบวนการสำคัญที่ต้องทำอย่างเป็นระบบ โดยเฉพาะเมื่อเกิดการเปลี่ยนแปลงบุคลากร ไม่ว่าจะเป็นการลาออก การย้ายแผนก หรือการสิ้นสุดสัญญาจ้างงาน การปล่อยให้ทรัพย์สินต่างๆ เช่น โน้ตบุ๊ก บัตรพนักงาน หรือกุญแจสำนักงาน ถูกทิ้งไว้โดยไม่มีการบันทึก อาจนำไปสู่ความเสี่ยงด้านความปลอดภัยของข้อมูล (Data Leakage) และปัญหาด้านการตรวจสอบทางบัญชี (Audit Trail) ได้อย่างร้ายแรง

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

🔑 หลักการทางเทคนิค: การออกแบบฐานข้อมูลสำหรับ Asset Offboarding

หัวใจสำคัญคือการสร้างตารางที่เชื่อมโยงข้อมูลพนักงาน (Employee) กับทรัพย์สิน (Asset) และบันทึกสถานะการส่งคืน (Return Status) เราจำเป็นต้องมีตารางหลักอย่างน้อย 3 ตาราง เพื่อให้สามารถติดตามวงจรชีวิตของทรัพย์สินได้อย่างสมบูรณ์:

  1. employees: ข้อมูลพนักงาน (employee_id, name, status)
  2. assets: รายการทรัพย์สิน (asset_id, asset_type, assigned_to_employee_id, status)
  3. return_log: บันทึกการส่งคืน (log_id, asset_id, return_date, returned_by_user)

เมื่อพนักงานคนใดคนหนึ่งออกจากองค์กร ระบบจะต้องทำการ Query ข้อมูลจากตาราง assets โดยใช้ assigned_to_employee_id เพื่อดึงรายการทรัพย์สินทั้งหมดที่ยังสถานะเป็น ‘Active’ และดำเนินการอัปเดตสถานะเหล่านั้นให้เป็น ‘Returned’ พร้อมบันทึกรายการลงใน return_log

💻 ตัวอย่างการเขียน SQL ด้วย PostgreSQL

สมมติว่าพนักงาน ID 101 ได้ลาออก และต้องส่งคืนโน้ตบุ๊ก (L1) และบัตรพนักงาน (B1) เราสามารถใช้คำสั่ง SQL เพื่อจัดการข้อมูลทั้งหมดในขั้นตอนเดียว:

SQL

-- 1. อัปเดตสถานะทรัพย์สินที่ถูกส่งคืน (Update Asset Status) 
UPDATE assets
SET status = 'Returned',
    return_date = CURRENT_DATE
WHERE assigned_to_employee_id = 101
  AND asset_id IN ('L1', 'B1');

-- 2. บันทึกรายการส่งคืนลงใน Log (Log the Transaction)
INSERT INTO return_log (asset_id, return_date, returned_by_user) VALUES
('L1', CURRENT_DATE, 'HR_System'),
('B1', CURRENT_DATE, 'HR_System');

-- 3. อัปเดตสถานะพนักงานเป็น Offboarded (Final Employee Status Update)
UPDATE employees
SET status = 'Offboarded'
WHERE employee_id = 101;

✅ บทสรุป: ความสำคัญของการทำ Automation

การใช้ PostgreSQL ในการจัดการกระบวนการ Offboarding ไม่ได้เป็นเพียงแค่การบันทึกข้อมูล แต่เป็นการสร้างระบบควบคุมที่ป้องกันการสูญหายของทรัพย์สินและข้อมูลสำคัญอย่างเป็นระบบ ด้วยการใช้ Transactional Logic ในการอัปเดตหลายตารางพร้อมกัน ทำให้มั่นใจได้ว่าข้อมูลทั้งหมดจะถูกบันทึกอย่างสมบูรณ์และเป็นไปตามหลักการกำกับดูแลกิจการที่ดี (Good Governance) ซึ่งช่วยลดความเสี่ยงทางธุรกิจได้อย่างมีประสิทธิภาพสูงสุด