To determine a database Capacity Estimation , we will consider BookmyShow.com as example
Requirements of BookmyShow.Com
- Our ticket booking service should be able to list different cities where its affiliate cinemas are located.
- Once the user selects the city, the service should display the movies released in that particular city.
- Once the user selects a movie, the service should display the cinemas running that movie and its available show times.
- The user should be able to choose a show at a particular cinema and book their tickets.
- The service should be able to show the user the seating arrangement of the cinema hall. The user should be able to select multiple seats according to their preference.
- The user should be able to distinguish available seats from booked ones.
- Users should be able to put a hold on the seats for five minutes before they make a payment to finalize the booking.
Storage estimates: Let’s assume that we have 10 cities and, on average each city has 10 cinemas. If there are 500 seats in each cinema and on average, there are 3 shows every day.
Let’s assume each seat booking needs 50 bytes (IDs, NumberOfSeats, ShowID, MovieID, SeatNumbers, SeatStatus, Timestamp, etc.) to store in the database. We would also need to store information about movies and cinemas; let’s assume it’ll take 50 bytes. So, to store all the data about all shows of all cinemas of all cities for a day:
10 cities * 10 cinemas * 500 seats * 3 shows * (50+50) bytes = 15 MB/ day
To store five years of this data, we would need around = 15 * 365 * 5 = 28 GB
For help bytes conversion , please refer below grid :
1 KB = 1000 bytes
1 MB = 1000 KB
1 GB = 1000 MB
1 TB = 1000 GB
1 PB = 1000 TB