# Character Skill Handler Documentation ## Overview This document describes the database relationships and interactions for the `dbCharacterSkillHandler` class. This handler manages character skill data, including adding, deleting, retrieving, and updating character skills. ## Handler Class **File:** `src/engine/db/handlers/dbCharacterSkillHandler.java` **Class:** `dbCharacterSkillHandler` **Extends:** `dbHandlerBase` ## Database Tables ### Main Table - **Table Name:** `dyn_character_skill` - **Description:** Stores dynamic skill information for characters including skill base ID, character ID, and training levels - **Columns:** - UID (Primary Key) - CharacterID - skillsBaseID - trains ## Key Queries ### Add Skill ```sql INSERT INTO `dyn_character_skill` (`CharacterID`, `skillsBaseID`, `trains`) VALUES (?, ?, ?); ``` **File:** `dbCharacterSkillHandler.java`, Line ~20 ### Delete Skill ```sql DELETE FROM `dyn_character_skill` WHERE `UID` = ? ``` **File:** `dbCharacterSkillHandler.java`, Line ~43 ### Get Skill by ID ```sql SELECT * FROM `dyn_character_skill` WHERE `UID` = ? ``` **File:** `dbCharacterSkillHandler.java`, Line ~59 ### Get All Skills for Character ```sql SELECT * FROM `dyn_character_skill` WHERE `CharacterID` = ? ``` **File:** `dbCharacterSkillHandler.java`, Line ~80 ### Update Trains ```sql UPDATE `dyn_character_skill` SET `trains`=? WHERE `UID` = ? ``` **File:** `dbCharacterSkillHandler.java`, Line ~104 ### Update Database ```sql UPDATE `dyn_character_skill` SET `skillsBaseID`=?, `CharacterID`=?, `trains`=? WHERE `UID`=? ``` **File:** `dbCharacterSkillHandler.java`, Line ~123 ## Relationships 1. **Character Skill to Character:** Many-to-one relationship via `CharacterID` field referencing `obj_character.UID` 2. **Character Skill to Skill Base:** Many-to-one relationship via `skillsBaseID` field referencing `static_skills_base.ID` ## Java Field to Database Column Mappings | Java Field | Database Column | Notes | |------------|-----------------|-------| | `characterID` | `dyn_character_skill.CharacterID` | Reference to character | | `skillBaseID` | `dyn_character_skill.skillsBaseID` | Reference to skill base | | `trains` | `dyn_character_skill.trains` | Training level |