Scat, I just realized something (maybe) bad about ENUMs.
We're going to have, literally, hundreds of Rule Types by the time we're done implementing everything. I do not think it is practical to maintain a database column of enum('100s','of','rule',...'types'). Do you? Enum in the code seems fine, but can we make those fields simple varchar(64) and expect our server admins to not fat-finger a rule entry they want customized?
Thoughts?
Example:
Code: Select all
CREATE TABLE `ruleset_details` (
`id` int(10) unsigned NOT NULL auto_increment,
`ruleset_id` int(10) unsigned NOT NULL,
`rule_category` enum('R_Client','R_Guild','R_Player','R_UI','R_World','R_Zone') character set latin1 collate latin1_general_ci NOT NULL,
`rule_type` enum('ShowWelcomeScreen','MaxLevel','MaxLevelOverrideStatus','MaxPlayers','MaxPlayersOverrideStatus','VitalityAmount','VitalityFrequency','MaxWhoResults','MaxWhoOverrideStatus','GamblingTokenItemID','GuildAutoJoin','GuildAutoJoinID','GuildAutoJoinDefaultRankID','ServerLocked','ServerLockedOverrideStatus','SyncZonesWithLogin','SyncEquipWithLogin','UseBannedIPsTable','MinZoneLevelOverrideStatus','MinZoneAccessOverrideStatus','XPMultiplier','TSXPMultiplier') character set latin1 collate latin1_general_ci NOT NULL,
`rule_value` varchar(64) character set latin1 collate latin1_general_ci NOT NULL,
`description` varchar(256) character set latin1 collate latin1_general_ci default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `RuleCatTypeIDX` (`ruleset_id`,`rule_category`,`rule_type`),
CONSTRAINT `FK_ruleset_details` FOREIGN KEY (`ruleset_id`) REFERENCES `rulesets` (`ruleset_id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1