diff options
| author | fusion32 <marcopuzziello@gmail.com> | 2025-07-11 11:55:03 -0300 |
|---|---|---|
| committer | fusion32 <marcopuzziello@gmail.com> | 2025-07-11 11:55:03 -0300 |
| commit | 3ab6d1d312e2b1ecbd858be56bd7a5d6bc451a85 (patch) | |
| tree | 8418bf31a3578cbe9f5fb6406054360f42e6cd18 /sql | |
| parent | 8dbd1d39e3dbd1276e2351070a0645c5e973da9e (diff) | |
| download | querymanager-3ab6d1d312e2b1ecbd858be56bd7a5d6bc451a85.tar.gz querymanager-3ab6d1d312e2b1ecbd858be56bd7a5d6bc451a85.zip | |
implement more queries + overall improvements
Diffstat (limited to 'sql')
| -rw-r--r-- | sql/schema.sql | 42 |
1 files changed, 30 insertions, 12 deletions
diff --git a/sql/schema.sql b/sql/schema.sql index 18c2938..6ec136b 100644 --- a/sql/schema.sql +++ b/sql/schema.sql @@ -1,3 +1,5 @@ +-- Primary Tables +--============================================================================== CREATE TABLE IF NOT EXISTS Worlds ( WorldID INTEGER NOT NULL, Name TEXT NOT NULL COLLATE NOCASE, @@ -9,6 +11,7 @@ CREATE TABLE IF NOT EXISTS Worlds ( PremiumPlayerBuffer INTEGER NOT NULL, MaxNewbies INTEGER NOT NULL, PremiumNewbieBuffer INTEGER NOT NULL, + OnlineRecord INTEGER NOT NULL DEFAULT 0, PRIMARY KEY (WorldID), UNIQUE (Name) ); @@ -23,8 +26,6 @@ CREATE TABLE IF NOT EXISTS Accounts ( UNIQUE (EMail) ); --- Character Tables ---============================================================================== CREATE TABLE IF NOT EXISTS Characters ( WorldID INTEGER NOT NULL, CharacterID INTEGER NOT NULL, @@ -34,10 +35,12 @@ CREATE TABLE IF NOT EXISTS Characters ( Guild TEXT NOT NULL COLLATE NOCASE DEFAULT '', Rank TEXT NOT NULL COLLATE NOCASE DEFAULT '', Title TEXT NOT NULL COLLATE NOCASE DEFAULT '', + IsOnline INTEGER NOT NULL DEFAULT 0, PRIMARY KEY (CharacterID), UNIQUE (Name) ); -CREATE INDEX IF NOT EXISTS CharactersAccountIndex ON Characters(AccountID); +CREATE INDEX IF NOT EXISTS CharactersWorldIndex ON Characters(WorldID, IsOnline); +CREATE INDEX IF NOT EXISTS CharactersAccountIndex ON Characters(AccountID, IsOnline); CREATE INDEX IF NOT EXISTS CharactersGuildIndex ON Characters(Guild); CREATE TABLE IF NOT EXISTS CharacterBuddies ( @@ -58,15 +61,6 @@ CREATE TABLE IF NOT EXISTS CharacterRights ( PRIMARY KEY(CharacterID, Right) ); -CREATE TABLE IF NOT EXISTS OnlineCharacters ( - CharacterID INTEGER NOT NULL, - AccountID INTEGER NOT NULL, - IPAddress INTEGER NOT NULL, - MultiClient INTEGER NOT NULL, - PRIMARY KEY (CharacterID) -); -CREATE INDEX IF NOT EXISTS OnlineCharactersAccountIndex ON OnlineCharacters(AccountID); - -- House Tables --============================================================================== CREATE TABLE IF NOT EXISTS Houses ( @@ -175,3 +169,27 @@ CREATE TABLE IF NOT EXISTS Statements ( Comment TEXT NOT NULL, PRIMARY KEY (Timestamp, StatementID) ); + +-- Info Tables +--============================================================================== +CREATE TABLE IF NOT EXISTS KillStatistics ( + WorldID INTEGER NOT NULL, + Name TEXT NOT NULL COLLATE NOCASE, + TimesKilled INTEGER NOT NULL, + PlayersKilled INTEGER NOT NULL, + PRIMARY KEY (WorldID, Name) +); + +CREATE TABLE IF NOT EXISTS OnlineCharacters ( + WorldID INTEGER NOT NULL, + Name TEXT NOT NULL COLLATE NOCASE, + Level INTEGER NOT NULL, + Profession TEXT NOT NULL, + PRIMARY KEY (WorldID, Name) +); + +-- REMOVE(fusion): Testing Data. +--============================================================================== +INSERT INTO Worlds (Name, Type, RebootTime, Address, Port, MaxPlayers, + PremiumPlayerBuffer, MaxNewbies, PremiumNewbieBuffer) + VALUES ("Zanera", 0, 5, 0x7F000001, 7172, 1000, 100, 300, 100); |
