Você está na página 1de 10

Social Gaming Network

Proposal Report - Database Design - Group 18


22 February 2018

Website: https://cs353group18.blogspot.com.tr/?m=1


Berk Evren Abbasoglu


Arda Kıray
Sencer Umut Balkan


SOCIAL GAMING NETWORK - PROPOSAL REPORT 1


Introduction
As the CS353 project, we were assigned the topic of “Social Gaming Marketplace.”
In this report, a design is proposed for our database system. This section will give a brief
description of the project. The project aims to encourage people buy and play games
through the online platform, and play them with friends where possible.

Example Usage Scenario:

Let’s name two friends as Jack and Lou. Jack purchases and online game through
our platform. He likes it and refers the game to his friend, Lou. Taking his advice, Lou also
purchases the game. They enjoy the game together. As they complete each game, they
make more and more purchases. Over time, they play the games with more and more
friends.

Database System:

For our project, we will implement a database system. In the next section of this
report, this system will be explained in detail. Information about what the database holds,
the tables and the entities with their attributes will be detailed.

Requirements

The use of this program will require a computer and internet connection. The users
will be required to download the application to their desktop and launch it. They will be
asked to register and create an account. Once they log in, they can add other people as
friends by providing their usernames. For purchases, the banking APIs will be required to
process transactions. Furthermore, servers will be needed to host the players during
online games.

Limitations

As more and more users join our platform, the database might need to be extended.
The servers need to be maintained to produce a smooth gaming environment. We also
cannot safeguard against foul language during online interactions. For the users to feel
safe and secure (and have fun!) the chatting systems need to be constantly watched, faulty
behavior reports evaluated and an optional language filtering should be implemented.


SOCIAL GAMING NETWORK - PROPOSAL REPORT 2


Database Design

In this section of the report, the preliminary design for the database will be
explained. The following tables are the results of an initial design process and they are
subject to change with further development of the project. The main goal here is to give an
abstract view of how the database is approximately going to look like.

User Entity

Figure 1: User Entity

User Entity stores the attributes of users.


ID: integer(24) Stores a unique ID for the user. It is also the primary key.
email: char (50) Stores the e-mail address of the user.
password: char (255) Stores the password of the user for the login process.
fname: char (50) Stores the first name of the user
lname: char (50) Stores the last name of the user
phone_num: char (14) Stores the phone number of the user for authentication
messages etc.
age: integer (3) Stores the age of the user.
last_online: char(20) Stores the time the user was last seen online. Friends of the
user can see this information.
member_since: char (10) Stores the creation date of the user’s account.
gender: integer(10) Stores the gender of the user.

SOCIAL GAMING NETWORK - PROPOSAL REPORT 3


card_number: integer (10) Stores the credit card number of the user for use when
making purchases.
bank_account: integer (10) Stores the bank account of the user for use when making
purchases.
preferred_currency: char (10) Stores the preferred currency of the user for use when
making purchases. It can be dollar, euro, lira etc.
last_played: char (255) Stores the last played game of the user. Friends of the user
can see this information.
friendList: char (255) Stores the friends of the user.
ignoreList: char (255) Stores the users blocked by the user.

Plays Relation

Figure 2: Plays Relation

sessionID: (integer 24) Stores a session ID for the game being played. Other players
can join the game using this session ID.

SOCIAL GAMING NETWORK - PROPOSAL REPORT 4


Game Entity

Figure 3: Game Entity

gameID: integer (10) Stores a unique ID for each game. This is also the primary
key.
name: char (255) Stores the name of the game.
price: integer (3) Stores the price of the game in the preferred currency of the user.
release_date: char (50) Stores the release date of the game.
rating: integer (3) Stores the rating of the game based on the reviews, out of 100.
reviews: char (255) Stores the reviews of the game by other users.
prequel_games: char (255) If the game is part of a series and has preceding games,
this attribute stores that game(s).
sequel_games: char (255) If the game is part of a series and has follow-up games,
this attribute stores that game(s).
required_age: integer (3) If the game has an age limit, this attribute stores the age.
no_of_players: integer (2) Stores the number of required players to play the game,
from 1 up to 22.

Has Relation

Figure 4: Has Relation

userID: integer (24) Stores the ID of the user which has the credit card.


SOCIAL GAMING NETWORK - PROPOSAL REPORT 5


Credit Card Entity

Figure 5: Credit Card Entity

entity2UserID: integer (24) Stores the user ID for the beholder of the card. This is a
foreign key.
card_number: integer (16) Stores the credit card number. This is a primary key.
cvc2: integer (3) Stores the 3-digit security code of the credit card.
expr_date: char (10) Stores the expiration date of the credit card.

Creates Relation

Figure 6: Creates Relation

userID: integer (24) Stores the user ID for the creator of the game. This is a foreign
key.

SOCIAL GAMING NETWORK - PROPOSAL REPORT 6


Game Request Entity

Figure 7: Game Request Entity

entityUserID: integer (24) Stores the user ID for the creator of the game request.
This is a foreign key.
request_id: integer (10) Stores a unique request ID. This is a primary key.
gameID: integer (24) Stores the ID of the game for which a request is created.
no_of_players: integer (2) Stores the number of required players to play the game,
from 1 up to 22.
name: char (255) Stores the name of the game.
request_time: integer (10) Stores the time the request was created.
recipient_email: char (50) Stores the recipient’s email, a unique identifier.
recipientID: integer (24) Stores the recipient’s ID, a unique identifier.

Current Game Entity

Figure 8: Current Game Entity

elapsed_time: integer (10) Stores the time elapsed since the creation of the request.
no_of_players: integer (2) Stores the number of required players to play the game,
from 1 up to 22.
gameID: integer (24) Stores the ID of the game for which a request is created.
sessionID: integer (24) Stores the ID of the session. Other players can join in using
this ID.
hostID: integer (24) Stores the ID of the host player.
GameRequestrequest_id: integer (10) Stores a unique request ID. This is a foreign
key.


SOCIAL GAMING NETWORK - PROPOSAL REPORT 7


Complete Game Entity

Figure 9: Complete Game Entity

elapsed_time: integer (10) Stores the time elapsed since the creation of the request.
no_of_players: integer (2) Stores the number of required players to play the game,
from 1 up to 22.
gameID: integer (24) Stores the ID of the game for which a request is created.
sessionID: integer (24) Stores the ID of the session. Other players can join in using
this ID.
hostID: integer (24) Stores the ID of the host player.
GameRequestrequest_id: integer (10) Stores a unique request ID. This is a foreign
key.

Invites Relation

Figure 10: Invites Relation

sessionID: integer (24) Stores a unique reference ID. This helps identify which user
sent the invitation. This is a primary key.

Friend Entity

Figure 11: Friend Entity

inviteeID: integer (24) Stores a unique ID for the invitee.


email: char (255) Stores the email of the invitee.


SOCIAL GAMING NETWORK - PROPOSAL REPORT 8


Figure 12: E/R Model

SOCIAL GAMING NETWORK - PROPOSAL REPORT 9


[this page is intentionally left blank]

SOCIAL GAMING NETWORK - PROPOSAL REPORT 10

Você também pode gostar