What does a buddy list have to do with logins? Anyway, here's what I have for the DB so far. Still a work in progress:
CREATE TABLE `dplogin_accounts` (
`id` int UNSIGNED NOT NULL auto_increment,
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`pwhash` char(32) NOT NULL,
`pubkey` VARBINARY(128) NOT NULL,
`encprivkey` VARBINARY(128) NOT NULL,
`email` varchar(255) collate utf8_bin NOT NULL default '',
`realname` varchar(64) collate utf8_bin NOT NULL default '',
`flags` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
INDEX (email(8))
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Account' AUTO_INCREMENT=1;
CREATE TABLE `dplogin_names` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`name` varchar(32) collate utf8_bin NOT NULL default '',
`playerid` int UNSIGNED NOT NULL,
PRIMARY KEY (`id`),
INDEX (name(8)),
INDEX (playerid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Name to ID remap';
CREATE TABLE `dplogin_clans` (
`id` int UNSIGNED NOT NULL auto_increment,
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`name` varchar(64) collate utf8_bin NOT NULL default '',
`tag` varchar(16) collate utf8_bin NOT NULL default '',
`website` varchar(255) collate utf8_bin NOT NULL default '',
`ircchan` varchar(32) collate utf8_bin NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Account' AUTO_INCREMENT=1;
CREATE TABLE `dplogin_clanmembers` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`clanid` int UNSIGNED NOT NULL,
`playerid` int UNSIGNED NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Name to ID remap' AUTO_INCREMENT=1;
CREATE TABLE `dplogin_ips` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
`ip` varchar(16) collate utf8_bin NOT NULL default 'BADIP',
PRIMARY KEY (`id`)
) COMMENT='IP Tracking Table' CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1;
CREATE TABLE `dplogin_hardwareids` (
`id` int UNSIGNED NOT NULL AUTO_INCREMENT,
`hardwareid` char(32) collate utf8_bin NOT NULL default 'BADHWID',
`hardwareidtype` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`)
) COMMENT='IP Tracking Table' CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1;
CREATE TABLE `dplogin_connectinfo` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`playerid` INT UNSIGNED NOT NULL,
`ipid` INT UNSIGNED NOT NULL,
`hardwareid1` INT UNSIGNED NOT NULL,
`hardwareid2` INT UNSIGNED NOT NULL,
`hardwareid3` INT UNSIGNED NOT NULL,
`hardwareid4` INT UNSIGNED NOT NULL,
`hardwareid5` INT UNSIGNED NOT NULL,
`hardwareid6` INT UNSIGNED NOT NULL,
PRIMARY KEY (`id`)
) COMMENT='Maps acconuts to IPs and hardware IDs.' CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1;