In the previous problem set, we created a simple database backed application. We learned, why dynamic applications are better than static ones, and how databases can help us build dynamic web applications.
Now that you have a basic understanding of dynamic web applications, let us start tackling some complex issues. Most web applications are made to be used by multiple users simultaneously. This creates all sorts of concurrency related issues. Think of an airline reservation system. Imagine user A goes to the website to make a reservation and is looking at the available seats. By the time user A decides which seat they want to reserve, user B comes about and reserves that seat. However user A may not yet know of this. It is important that the system does not allow user A to re-reserve that same seat.
pset: In this problem set you can make any kind of a multi-user reservation system. For this exercise, you have to select a web framework on the platform of your choice.
Learning Objectives:
- Understand concurrency related issues in multi-user web applications
- Understand how the database and application server handle concurrency
- Understand how web frameworks help us with the flow of a web application
- Understand how web frameworks help us with templating
- Understand what are database transactions, and why we need them
- Understand how to design a complex data model, which consists of relationships between tables
- Understand different types of SQL joins and the pros and cons of using them