Core/QuestStatus:

- Separate rewarded quests from active quests, and store them in a new table to reduce database size
- Drop the no longer needed `rewarded` column from character_queststatus for smaller table size
- Prevent filling the database with dropped quests
  - Delete useless records
- Implement queststatus save "queues" instead of states
- Minor optimizations

WARNING: Backup your database!

--HG--
branch : trunk
This commit is contained in:
linencloth
2010-12-26 04:16:18 +01:00
parent 8fdbe7c4e6
commit b150172521
16 changed files with 252 additions and 229 deletions

View File

@@ -857,7 +857,6 @@ CREATE TABLE `character_queststatus` (
`guid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Global Unique Identifier',
`quest` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'Quest Identifier',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0',
`rewarded` tinyint(1) unsigned NOT NULL DEFAULT '0',
`explored` tinyint(1) unsigned NOT NULL DEFAULT '0',
`timer` bigint(20) unsigned NOT NULL DEFAULT '0',
`mobcount1` smallint(3) unsigned NOT NULL DEFAULT '0',
@@ -906,6 +905,14 @@ LOCK TABLES `character_queststatus_daily` WRITE;
/*!40000 ALTER TABLE `character_queststatus_daily` ENABLE KEYS */;
UNLOCK TABLES;
DROP TABLE IF EXISTS `character_queststatus_rewarded`;
CREATE TABLE `character_queststatus_rewarded` (
`guid` int(10) unsigned NOT NULL default '0' COMMENT 'Global Unique Identifier',
`quest` int(10) unsigned NOT NULL default '0' COMMENT 'Quest Identifier',
PRIMARY KEY (`guid`,`quest`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Player System';
--
-- Table structure for table `character_queststatus_weekly`
--