Project Name: Genshin Impact Database (temp)
Team Number: 26
Team Members: Dylan Huang, Trevor Lau, Section 4 (T/F 1:35 Annunziato)
Project Description: We are modeling a role playing game named Genshin Impact. In the game, the player collects and levels up characters and weapons who each have different abilities/types.
UML Diagram Link: https://github.com/huangdylan08/dbdesign-p1/blob/main/db_design_final_project_UML.pdf
Description of User Data Model: The user model represents the player and stores a player id, first name, last name, username, password, email, and date of birth.
Description of the Two Domain Object Data Models: The Two Domain Objects that we are modeling are Characters and Weapons. Character Data Models contain character id, character name, level, rarity, base attack, base health, weapon type, and their element. Weapon Data Models contain weapon id, weapon name, weapon type, level, refinement level, rarity, base attack, ability name, and ability description.
Description of the User to Domain Object Relationship: We have a one to many relationship between our User and Character Models. This means that each user can own multiple characters.
Description of the Domain Object to Domain Object Relationship: We have a 0...1 to 1 relationship between our two Domain Objects, characters and weapons. This means that every character has to wield a weapon, while a weapon does not necessarily have to be wielded by a character and can just sit in your inventory.
Description of the Portable Enumeration(s): We have two enumerations, WeaponType and Element. WeaponType's enumerations are Bow, Polearm, Sword, Claymore, and Catalyst, and is used in both domain objects to define what weapons a character can use and what type a weapon is. Element's enumerations are Pyro, Cryo, Electro, Anemo, Geo, and Hydro, which define the elemental type of a character.
Description of the User Interface Requirements: Our user interface supports CRUD functions for Users, Characters, and Weapons.
Problem Statement: We are modeling a role playing game named Genshin Impact. In the game, players collect and level up characters and weapons. The objective of the game is to create strong characters. However, there is no easy way to compare various characters and weapons to other characters and weapons.
Solution Statement: Our solution tracks a player's owned characters and weapons and their respective stats. By gathering all of the information into a single database, a player can quickly query the database about their characters and weapons in order to easily compare them to determine which is the strongest.
User: A typical user of our solution would be a Genshin Impact player. Because the objective of the game is become as strong as possible, our solution for easily comparing characters and weapons would be helpful to both beginners and professionals.
Domain Objects: The first domain object that we are modeling are Characters. The Character Data Models contain an id, name, level, rarity, base attack, base health, weapon type, and their element. The Characters represents characters owned by the user. The second domain object that we are modeling are Weapons. The Weapon Data Models contain an id, weapon name, weapon type, level, refinement level, rarity, base attack, ability name, and ability description. There is a 0...1 to 1 relationship between Characters and Weapons as each character must use a weapon but not all weapons must be used.