22.12.2012 Views

Database Projects/5e - Professor Jerry Post

Database Projects/5e - Professor Jerry Post

Database Projects/5e - Professor Jerry Post

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Room<br />

Start Date, Time<br />

End Date, Time<br />

Purpose<br />

Anticipated number of people<br />

Person Priority Level<br />

Account number for charges<br />

Date Made<br />

Person<br />

Proxy<br />

Item Quantity Charge<br />

Total item charges<br />

Room charge<br />

Total billed<br />

Figure 3<br />

Project Descriptions<br />

set up the room before a meeting, that extra hour should be used to move up the<br />

start time. The individual making the reservation is responsible for determining<br />

the specific time requirements, but it would be helpful if the room descriptions<br />

included some time estimates for basic tasks.<br />

To track who actually made the reservation, the system should record the person<br />

making the reservation—who might be a proxy. And it must track who is<br />

actually going to use the room (e.g., the responsible executive). The purpose is<br />

basically a short description that can be posted online so other people know how<br />

the room is being used. For instance, even though the president has higher priority<br />

than a marketing manager, the president might choose not to override a meeting<br />

scheduled with key customers.<br />

A person can enter a priority level for the room reservation. This priority can<br />

be anything from that person’s level or lower. For example, a top executive might<br />

reserve a room to use for rehearsing a presentation and assign a lower priority in<br />

case someone else needs the room.<br />

You should also think about what to do if a reservation is overridden and replaced<br />

with a higher-priority event. In particular, you might want to keep the<br />

original reservation and flag it instead of deleting it. Then, if the new meeting is<br />

canceled for some reason, you could contact the original person who reserved the<br />

room and ask if it should be rescheduled.<br />

Remember that concurrent access could be a significant problem. You do not<br />

want to allow two people to reserve the same room at the same time. Web systems<br />

typically use optimistic concurrency, but you might want to think about building<br />

some type of pessimistic locking. For instance, you might temporarily lock out<br />

a room when one person starts making a reservation for it, so that others cannot<br />

even start a reservation of that room at the same time. It would be frustrating for a<br />

user to go through all of the steps to reserve a room only to find that someone else<br />

was faster and had just reserved the room.<br />

41

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!