Design a hotel booking database like Airbnb
PremiumDatabase designMedium
- Double booking
- Availability calendar
- Geospatial search
Quick answer
This database design interview question asks you to design a hotel booking database like Airbnb. Aim for a design that stores data correctly and serves its main queries well, then explain the schema, keys, indexes and trade-offs. Interviewers want to see how you model entities, choose keys and design for the real access patterns.
The problem
Design the database for a hotel booking site like Airbnb. Hosts list places to stay with nightly prices and blocked dates; guests search by location and dates, book a stay, pay and leave a review afterwards. The hard part is that a listing can never be booked twice for the same night.
A listing is a whole home or a private room in the host's home, and optionally a room in a small boutique hotel. Each listing is one bookable unit with a property type; there is no room-count inventory.
What must a hotel booking database like Airbnb do?
- Book: Create a booking for a date range, charge the guest, and mark the nights unavailable, all or nothing.
- Search: Listings within a map area (or a city) available for a check-in and check-out date range, for N guests, filtered by price range and amenities, sorted by rating or price, 20 per page, in under 300 ms.
How well must it do it?
- No double booking: The database itself must reject a second confirmed booking for any night already taken.
- Price snapshot: The nightly price a guest pays is the price at booking time, even if the host changes it later.
What scale should you design for?
Use these numbers in your estimates.
The scale numbers unlock with this questionUnlock
Key concepts
- Double booking
- Availability calendar
- Geospatial search
- Range constraints
- Pricing snapshot
- Idempotency
How you’ll practise
- Access patterns
- Entities
- Schema
- Indexes and queries
- Scale and consistency
- Wrap-up
Lala, personalized to you, gives a hint when you ask and reviews your design when you are ready.
What do interviewers look for?
In any database design round.
- Lists the entities and how they relate before writing tables
- Designs the schema around the main access patterns
- Chooses primary keys, foreign keys and indexes with reasons
- Explains where to normalise and where to denormalise
- Considers integrity, transactions and concurrent writes
- Plans for growth: partitioning, archiving and migrations
Questions people ask about this interview question
- Which design type is this question?
- It is a database design question. You design a hotel booking database like Airbnb and explain your choices the way you would in an interview.
- Is this question asked at entry level?
- It is marked Medium. Entry-level engineers can practise it, but it expects you to reason about requirements and trade-offs, not only list components.
- What should I cover first?
- Start with the entities and the main queries the database must answer. Agree on scope with the interviewer before you design anything.
- Can I practise it for free?
- It is a premium question. Sign up and unlock it once for 10 credits; it then stays unlocked. When you finish, Lala, your personalized AI mentor, can review your design for 30 credits.
Related questions
Updated · Written by the SevyDevy team