SevyDevy

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.
5 more requirementsUnlock to see all

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.
3 more requirementsUnlock to see all

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

6 short steps · save and come back any time
  1. Access patterns
  2. Entities
  3. Schema
  4. Indexes and queries
  5. Scale and consistency
  6. 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

Premium questionSign up free, then unlock it