startSetup(); $installer->run(" -- DROP TABLE IF EXISTS {$this->getTable('rating')}; CREATE TABLE {$this->getTable('rating')} ( `rating_id` smallint(6) unsigned NOT NULL auto_increment, `entity_id` smallint(6) unsigned NOT NULL default '0', `rating_code` varchar(64) NOT NULL default '', `position` tinyint(3) unsigned NOT NULL default '0', PRIMARY KEY (`rating_id`), UNIQUE KEY `IDX_CODE` (`rating_code`), KEY `FK_RATING_ENTITY` (`entity_id`), CONSTRAINT `FK_RATING_ENTITY_KEY` FOREIGN KEY (`entity_id`) REFERENCES {$this->getTable('rating_entity')} (`entity_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='ratings'; insert into {$this->getTable('rating')}(`rating_id`,`entity_id`,`rating_code`,`position`) values (1,1,'Quality',0),(2,1,'Value',0),(3,1,'Price',0); -- DROP TABLE IF EXISTS {$this->getTable('rating_entity')}; CREATE TABLE {$this->getTable('rating_entity')} ( `entity_id` smallint(6) unsigned NOT NULL auto_increment, `entity_code` varchar(64) NOT NULL default '', PRIMARY KEY (`entity_id`), UNIQUE KEY `IDX_CODE` (`entity_code`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rating entities'; insert into {$this->getTable('rating_entity')}(`entity_id`,`entity_code`) values (1,'product'),(2,'product_review'),(3,'review'); -- DROP TABLE IF EXISTS {$this->getTable('rating_option')}; CREATE TABLE {$this->getTable('rating_option')} ( `option_id` int(10) unsigned NOT NULL auto_increment, `rating_id` smallint(6) unsigned NOT NULL default '0', `code` varchar(32) NOT NULL default '', `value` tinyint(3) unsigned NOT NULL default '0', `position` tinyint(3) unsigned NOT NULL default '0', PRIMARY KEY (`option_id`), KEY `FK_RATING_OPTION_RATING` (`rating_id`), CONSTRAINT `FK_RATING_OPTION_RATING` FOREIGN KEY (`rating_id`) REFERENCES {$this->getTable('rating')} (`rating_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rating options'; insert into {$this->getTable('rating_option')}(`option_id`,`rating_id`,`code`,`value`,`position`) values (1,1,'1',1,1),(2,1,'2',2,2),(3,1,'3',3,3),(4,1,'4',4,4),(5,1,'5',5,5),(6,2,'1',1,1),(7,2,'2',2,2),(8,2,'3',3,3),(9,2,'4',4,4),(10,2,'5',5,5),(11,3,'1',1,1),(12,3,'2',2,2),(13,3,'3',3,3),(14,3,'4',4,4),(15,3,'5',5,5); -- DROP TABLE IF EXISTS {$this->getTable('rating_option_vote')}; CREATE TABLE {$this->getTable('rating_option_vote')} ( `vote_id` bigint(20) unsigned NOT NULL auto_increment, `option_id` int(10) unsigned NOT NULL default '0', `remote_ip` varchar(16) NOT NULL default '', `remote_ip_long` int(11) NOT NULL default '0', `customer_id` int(11) unsigned default '0', `entity_pk_value` bigint(20) unsigned NOT NULL default '0', `rating_id` smallint(6) unsigned NOT NULL default '0', `review_id` bigint(20) unsigned default NULL, `percent` tinyint(3) NOT NULL default '0', `value` tinyint (3) NOT NULL default '0', PRIMARY KEY (`vote_id`), KEY `FK_RATING_OPTION_VALUE_OPTION` (`option_id`), CONSTRAINT `FK_RATING_OPTION_VALUE_OPTION` FOREIGN KEY (`option_id`) REFERENCES {$this->getTable('rating_option')} (`option_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Rating option values'; -- DROP TABLE IF EXISTS {$this->getTable('rating_option_vote_aggregated')}; CREATE TABLE {$this->getTable('rating_option_vote_aggregated')} ( `primary_id` int(11) NOT NULL auto_increment, `rating_id` smallint(6) unsigned NOT NULL default '0', `entity_pk_value` bigint(20) unsigned NOT NULL default '0', `vote_count` int(10) unsigned NOT NULL default '0', `vote_value_sum` int(10) unsigned NOT NULL default '0', `percent` tinyint(3) NOT NULL default '0', `store_id` smallint (5) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`primary_id`), KEY `FK_RATING_OPTION_VALUE_AGGREGATE` (`rating_id`), CONSTRAINT `FK_RATING_OPTION_VALUE_AGGREGATE` FOREIGN KEY (`rating_id`) REFERENCES {$this->getTable('rating')} (`rating_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('rating_store')}; CREATE TABLE {$this->getTable('rating_store')} ( `rating_id` smallint(6) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', PRIMARY KEY (`rating_id`,`store_id`), CONSTRAINT `FK_RATING_STORE_RATING` FOREIGN KEY (`rating_id`) REFERENCES {$this->getTable('rating')} (`rating_id`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS {$this->getTable('rating_title')}; CREATE TABLE {$this->getTable('rating_title')} ( `rating_id` smallint(6) unsigned NOT NULL default '0', `store_id` smallint(5) unsigned NOT NULL default '0', `value` varchar(255) NOT NULL default '', PRIMARY KEY (`rating_id`,`store_id`), CONSTRAINT `FK_RATING_TITLE` FOREIGN KEY (`rating_id`) REFERENCES {$this->getTable('rating')} (`rating_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; "); $installer->endSetup();