tables: # nicknames table nicks { nickID uint nickName tinytext } # identifiers (username) table idents { identID uint identName tinytext } # userhosts table hosts { hostID uint hostName tinytext } # IRC users table users { userID uint nickID uint identID uint hostID uint seenFirst timestamp seenLast timestamp flags uint } # channels table { chanID uint chanName tinytext tsCreated timestamp tsUpdated timestamp flags uint } eventTypeEnum { eventTypeID uint eventTypeName tinytext }[] = { 1, "IRC_QUIT" 2, "CHAN_JOIN" 3, "CHAN_PART" 4, "CHAN_MODE" 5, "CHAN_KICK" 6, "CHAN_TOPIC" 7, "CHAN_MSG" 8, "CHAN_NOTICE" 9, "CHAN_ACTION" 10,"NOTE" 11,"IRC_RENAME" } # everything that goes on in a channel: mode and topic changes, chat messages, joins, parts, quits, and etc.. chatEvents { eventID uint eventType uint chanID uint userID uint user2ID uint # userID of person kicked, or userID of new nickname, else 0. tsWhen timestamp # unix timestamp of when event occured. flags uint said text }