Files
Server/src/engine/documentation/Handler Specific Documentation/dbCSSessionHandler_Documentation.md
T

2.6 KiB

dbCSSessionHandler Documentation

Overview

This document describes the database relationships and interactions for the dbCSSessionHandler class. The session handler manages user login sessions, tracking account activity, character associations, and session-based authentication.

Handler Class

File: src/engine/db/handlers/dbCSSessionHandler.java Class: dbCSSessionHandler Extends: dbHandlerBase

Database Tables

Main Session Table

  • Table Name: dyn_cs_session
  • Description: Stores information about active and inactive user sessions, including account associations and character details
  • Columns:
    • UID (Primary Key)
    • accountID
    • characterID
    • sessionKey
    • lastLoginDate
    • lastLogoutDate
Table Name Description Relationship
obj_account Accounts associated with sessions accountID → obj_account.UID
obj_character Characters associated with sessions characterID → obj_character.UID

Key Queries

Create Session

INSERT INTO `dyn_cs_session` (`accountID`, `characterID`, `sessionKey`, `lastLoginDate`) VALUES(?,?,?,?)

File: dbCSSessionHandler.java, Line ~35

Load Session by Account

SELECT * FROM `dyn_cs_session` WHERE `accountID` = ?

File: dbCSSessionHandler.java, Line ~50

Load Session by Character

SELECT * FROM `dyn_cs_session` WHERE `characterID` = ?

File: dbCSSessionHandler.java, Line ~65

Update Session Last Login

UPDATE `dyn_cs_session` SET `lastLoginDate`=? WHERE `UID`=?

File: dbCSSessionHandler.java, Line ~80

Update Session Last Logout

UPDATE `dyn_cs_session` SET `lastLogoutDate`=? WHERE `UID`=?

File: dbCSSessionHandler.java, Line ~95

Relationships

  1. Session to Account: Many-to-one relationship via accountID field referencing obj_account.UID
  2. Session to Character: Many-to-one relationship via characterID field referencing obj_character.UID
  3. Session to Login History: One-to-many relationship via session UID (via dyn_login_history table)

Java Field to Database Column Mappings

Java Field Database Column Notes
accountID dyn_cs_session.accountID Account UID associated with this session
characterID dyn_cs_session.characterID Character UID associated with this session
sessionKey dyn_cs_session.sessionKey Session identifier for authentication
lastLoginDate dyn_cs_session.lastLoginDate Timestamp of last login
lastLogoutDate dyn_cs_session.lastLogoutDate Timestamp of last logout