บทที่ 22 · Hotel Reservation

ออกแบบระบบจองโรงแรม

ระบบจองโรงแรมที่รองรับ High Concurrency และ Concurrent Booking

บทนำ

ออกแบบระบบจองโรงแรมที่คล้ายกับ Marriott หรือ Airbnb Features รวมถึง Overbooking, Cancellation และ Payment

ความท้าทายหลัก

Locking Strategies

Pessimistic Locking

ใช้ SELECT... FOR UPDATE ล็อก Rows ระหว่าง Transaction

Optimistic Locking

ใช้ Version Numbers หรือ Timestamps ตรวจสอบ Conflicts

Database Constraints

ใช้ CHECK Constraints ป้องกัน Overbooking

Idempotency

ใช้ Reservation ID เป็น Idempotency Key ป้องกันการจองซ้ำ

เนื้อหานี้อ้างอิงจาก ByteByteGo