I am task with designing a database for online bookings.

I am not looking for a full design as we have had previous exp with online house rental.

What i would like to know, is how do we design a db for booking of hotel, travel, events.

We have some ideas.


Have all venues/ events (once/reoccuring) register. That seems like the static data.

But how do i manage a hotel with 100+ rooms?

I am kinda stumped.

Any recommedations would be helpfull, or just thoughts on how i should approach this idea.

I want to design a prototype in acces to show the investor the design, but plan to do the backend in sql 2005/ 2008

+2  A: 

Break the architecture down into the smallest unit you can book. If you are booking rooms, then you could do something along these lines:

Name Location HotelID etc.

HotelID RoomID Capacity etc.

ClientID Name Address etc.

ClientID RoomID StartDate EndDate etc.

Matthew Jones
I have downloaded a couple of freeware apss, and reingeneared their dbs, but im stuck on how to handle hotels with 100+ rooms... Detail on the venue is fine, but having a user add 100+ rooms seems cumbersome. How will we go about this?
Ask the user about the accomodations of the rooms: number of guests, amenities, etc. and then ask how many rooms of this type exist. This should reduce the entry to however many *different* rooms there are, not the number of rooms total.
Matthew Jones
I have thought about htis, but i need to be able to tell if the room (in a hotel is called 1A or 2B). Now do they need to register each room, or by floor, or by group?
If you need to know the room number, then yes, you will need to register each room. However, using my previous comment, you could simply ask the user for the amenities and then ask which room numbers those amenities apply to.
Matthew Jones
Im sorry, i dont know what you mean by amenities. I have seen some of these fields in the dbs i was looking at, is it like associations of room types?
Kind of. By amenities, I mean things like whether or not the room has a coffee pot, or how many people the room can comfortable accomodate, or if the room has internet access. The possible combinations of these things (or whatever you choose to keep track of) should make the number of totally different room "styles" for lack of a better word significantly decrease.
Matthew Jones
I did a project similar to this in college (oddly, for a business class), so that's why this is so intriguing to me.
Matthew Jones
Yes, we are looking at making these "attrinutes" of the venue. Searchable like the tags on this site. I must say we have found some good idea from here. What i need to do is make the (i cant find the artcle) but i need to capture the login user in 30 seconds???
I'm not so good with that part of it. You should ask a question on this site, but find the article first (otherwise the question might get closed.)
Matthew Jones
I accept that, but all i would like to know is how can i make larger users' life easier with registering the actual rooms?
I would not name the table "Hotels", but "Venues" or something similar and generic

For large room structures, you could provide a way for them to upload a .txt file with the required information and then do an import into the database ussing SSIS. THat's how we get information from clients into our datbase. I upload data from clients inthe millions of rows every day.

My biggest problem is the fact that the user will be none of us, so computer ill that they might not even know how to create an upload file...