Gamer’s Club Database
Your first assignment for this semester is to design a database for you and your friends in the E-Sports Gamer’s Club (ESGC – the only club you should ever join!). To complete this assignment, you will need to bring a PC with a high-end graphics card, lightning-fast CPU, your favourite games and a good supply of energy drinks. It’s like a therapy session with you and your class mates (just to prove databases can really be fun!).
Jokes aside, this stuff is really serious. If you don’t believe me, look up any of the big international events such as Blizzcon or better still check out some of the action shots here. Our fight club is way more elite than the others so we need a system in place to help track all the awesome fun.
eSport events come in two categories; local game meets and eSports events held at public venues (For example, see Twitchcon 2017). Local game meets are the most common and only involve other club members. Public gaming events are loads of fun and involve awesome team-based games. The database needs to help us keep track of members so that we can quickly distribute event dates for gaming conventions and more commonly, game nights involving a sleep over (although usually players don’t really sleep!). We would need to record contact information to spread the word as quickly as possible.
The planned gaming events are a little different from public events and often involve a sleepover at either a member’s home address or some other location. Due to several complaints about member freeloading, we also want to keep a record of who brought food (and what they brought – yoyos and other cheap-as biscuits are frowned upon in this club!). It may be handy to have some basic food rating system – perhaps a food field and a simple 1-5 food rating. If a member brings something ordinary to one of these events too often, then they may as well have brought nothing and their record gets marked as a freeloader.
For game meets we record multiple game rounds and which teams participated. This also involves recording the winning team for each round. Because these rounds are so important to a team’s status (and we want to be fair and everything), we also need to record info about the types of computers brought along by each member to the event (desktop, laptop, cpu, memory, gpu, etc). On completion of a members only team play, we need to record the 1st prize (team) winner and runner up for that sleep over/gaming weekend.
Restrictions on the Design
To achieve the desired level of flexibility in data collection, the design will be expected to accommodate the following features:
• The design should consist of around 7-10 classes (information about public gaming events does not need to be recorded)
• It is up to you as the designer if you want to use inheritance in the proposed design.
• Your design should include at least 5 foreign keys and 2 composite primary keys.
• Your design will be optimised to reduce the storage of redundant information.