ในโลกของระบบ E-commerce ที่มีการแข่งขันสูง การจัดการโปรโมชัน (Promotion) ไม่ใช่แค่การแสดงส่วนลด แต่คือการบังคับใช้ชุดกฎทางธุรกิจ (Business Rules) ที่ซับซ้อนและต้องมีความแม่นยำสูง การนำ PostgreSQL มาใช้ในการจัดการโปรโมชันจึงเป็นทางเลือกที่เหมาะสม เนื่องจากคุณสมบัติ ACID Compliance และความสามารถในการจัดการ Query ที่ซับซ้อน ทำให้มั่นใจได้ว่าการคำนวณส่วนลดหรือการให้คะแนนสะสมจะเป็นไปอย่างถูกต้องและเชื่อถือได้
หลักการใช้ PostgreSQL ในการคำนวณกลไกโปรโมชัน
แทนที่จะใช้โค้ดที่ซับซ้อนในระดับแอปพลิเคชัน การกำหนดตรรกะโปรโมชันในระดับฐานข้อมูลด้วย SQL โดยเฉพาะการใช้ฟังก์ชัน CASE หรือ JOIN จะช่วยให้ระบบมีความยืดหยุ่นและง่ายต่อการบำรุงรักษา (Maintainability) เราจะมาดูตัวอย่างการจำลองโปรโมชันหลัก ๆ 3 รูปแบบที่ต้องใช้การคำนวณเชิงตรรกะของฐานข้อมูล
1. การลดราคาและคูปองส่วนลด (Discount & Coupon)
การลดราคาหรือการใช้คูปองมักต้องอาศัยการตรวจสอบเงื่อนไข (Condition) ของยอดรวมสินค้า (Total Price) ซึ่งสามารถทำได้ด้วย CASE statement เพื่อกำหนดราคาที่ต้องจ่ายจริง
SQL
SELECT
product_id,
price,
CASE
WHEN price >= 1000 THEN price * 0.90 -- ส่วนลด 10% สำหรับราคาสูง
WHEN price >= 500 THEN price * 0.95 -- ส่วนลด 5% สำหรับราคากลาง
ELSE price
END AS final_price
FROM products;
2. ซื้อ 1 แถม 1 (Buy 1 Get 1) และส่งฟรี (Free Shipping)
โปรโมชันแบบกลุ่ม (Bundle) หรือการส่งฟรีตามเงื่อนไขยอดรวม ต้องอาศัยการคำนวณเชิงกลุ่ม (Grouping) หรือการตรวจสอบเงื่อนไขยอดรวม (Aggregate Function) ซึ่งสามารถจำลองได้โดยการ JOIN ตารางรายการสินค้ากับตารางโปรโมชัน
SQL
-- สมมติว่ามีตาราง orders และ products
SELECT
o.order_id,
SUM(p.price) AS total_price,
CASE
WHEN SUM(p.price) >= 2000 THEN 'Free Shipping Applied'
ELSE 'Shipping Fee Applied'
END AS shipping_status
FROM orders o
JOIN order_items oi ON o.order_id = oi.order_id
JOIN products p ON oi.product_id = p.product_id
GROUP BY o.order_id;
3. ระบบสะสมแต้ม (Loyalty Points)
การสะสมแต้มคือการบันทึกข้อมูล (Data Logging) ที่ต้องมั่นใจว่าการเพิ่มแต้มนั้นเกิดขึ้นอย่างถูกต้องหลังการทำรายการเสร็จสิ้น เราใช้ INSERT INTO เพื่อบันทึกคะแนนที่ลูกค้าได้รับ
SQL
INSERT INTO loyalty_points (user_id, points_earned, transaction_date)
VALUES (101, 50, CURRENT_DATE);
บทสรุป: ความแข็งแกร่งของ PostgreSQL ในการจัดการโปรโมชัน
การใช้ PostgreSQL ในการจัดการตรรกะโปรโมชันช่วยให้ระบบมีความน่าเชื่อถือสูง เพราะทุกการคำนวณ (ไม่ว่าจะเป็นส่วนลด, การนับคะแนน, หรือการตรวจสอบเงื่อนไข) จะถูกดำเนินการภายใต้ Transaction เดียวกัน ซึ่งรับประกันความสมบูรณ์ของข้อมูล (Data Integrity) การทำความเข้าใจกลไกเหล่านี้และออกแบบ Query ที่เหมาะสม จะช่วยให้ธุรกิจของคุณสามารถสร้างระบบ E-commerce ที่ไม่เพียงแค่ขายของได้ แต่ยังสามารถจัดการกลยุทธ์ทางการตลาดที่ซับซ้อนได้อย่างมีประสิทธิภาพและเป็นระบบ