CREATE TABLE IF NOT EXISTS `jackal_impression_%s` ( `impression_id` int unsigned NOT NULL AUTO_INCREMENT, `ad_id` int unsigned NOT NULL, `page_uri` varchar(255) NOT NULL COMMENT "The page URI that the ad appeared in", `time` int unsigned NOT NULL COMMENT "The time that the ad was served", `ip` varchar(15) NOT NULL COMMENT "The IP that the ad was served", `session` varchar(32) NOT NULL COMMENT "An MD5 hash of the users session (used for sharding)", PRIMARY KEY(`impression_id`) );
Similar to normalization, but normalizes based on frequency of use rather than association.
Definitions:
CREATE TABLE IF NOT EXISTS `user` (
`user_id` int unsigned NOT NULL AUTO_INCREMENT,
`nickname` varchar(25) NOT NULL,
`password` varchar(32) NOT NULL,
`email` varchar(255) NOT NULL,
PRIMARY KEY(`user_id`)
);
CREATE TABLE IF NOT EXISTS `user_permissions` (
`user_id` int unsigned NOT NULL,
`Select_priv` enum('N','Y') NOT NULL default 'N',
`Insert_priv` enum('N','Y') NOT NULL default 'N',
`Update_priv` enum('N','Y') NOT NULL default 'N',
`Delete_priv` enum('N','Y') NOT NULL default 'N',
`Create_priv` enum('N','Y') NOT NULL default 'N',
`Drop_priv` enum('N','Y') NOT NULL default 'N',
`Grant_priv` enum('N','Y') NOT NULL default 'N',
`References_priv` enum('N','Y') NOT NULL default 'N',
`Index_priv` enum('N','Y') NOT NULL default 'N',
`Alter_priv` enum('N','Y') NOT NULL default 'N',
`Create_tmp_table_priv` enum('N','Y') NOT NULL default 'N',
`Lock_tables_priv` enum('N','Y') NOT NULL default 'N',
`Create_view_priv` enum('N','Y') NOT NULL default 'N',
`Show_view_priv` enum('N','Y') NOT NULL default 'N',
`Create_routine_priv` enum('N','Y') NOT NULL default 'N',
`Alter_routine_priv` enum('N','Y') NOT NULL default 'N',
`Execute_priv` enum('N','Y') NOT NULL default 'N',
PRIMARY KEY(`user_id`),
FOREIGN KEY(`user_id`) REFERENCES `user`(`user_id`) ON DELETE cascade
);
CREATE TABLE IF NOT EXISTS `user_info` (
`user_id` int unsigned NOT NULL,
`firsname` varchar(50) NOT NULL default '',
`surname` varchar(50) NOT NULL default '',
`phone` varchar(15) NOT NULL default '',
`street1` varchar(50) NOT NULL default '',
`street2` varchar(50) NOT NULL default '',
`city` varchar(50) NOT NULL default '',
`state` char(2) NOT NULL default '',
`zip` varchar(6) NOT NULL default '',
PRIMARY KEY(`user_id`),
FOREIGN KEY(`user_id`) REFERENCES `user`(`user_id`) ON DELETE cascade
);