201 lines
6.4 KiB
SQL
201 lines
6.4 KiB
SQL
|
|
# This is a fix for InnoDB in MySQL >= 4.1.x
|
|
# It "suspends judgement" for fkey relationships until are tables are set.
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- keyword_group
|
|
-- ---------------------------------------------------------------------
|
|
|
|
DROP TABLE IF EXISTS `keyword_group`;
|
|
|
|
CREATE TABLE `keyword_group`
|
|
(
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`visible` TINYINT,
|
|
`position` INTEGER,
|
|
`code` VARCHAR(255),
|
|
`created_at` DATETIME,
|
|
`updated_at` DATETIME,
|
|
PRIMARY KEY (`id`)
|
|
) ENGINE=InnoDB;
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- keyword
|
|
-- ---------------------------------------------------------------------
|
|
|
|
DROP TABLE IF EXISTS `keyword`;
|
|
|
|
CREATE TABLE `keyword`
|
|
(
|
|
`id` INTEGER NOT NULL AUTO_INCREMENT,
|
|
`keyword_group_id` INTEGER NOT NULL,
|
|
`visible` TINYINT,
|
|
`position` INTEGER,
|
|
`code` VARCHAR(255),
|
|
`created_at` DATETIME,
|
|
`updated_at` DATETIME,
|
|
PRIMARY KEY (`id`),
|
|
INDEX `idx_keyword_group_id` (`keyword_group_id`),
|
|
CONSTRAINT `fk_keyword_group_id`
|
|
FOREIGN KEY (`keyword_group_id`)
|
|
REFERENCES `keyword_group` (`id`)
|
|
ON UPDATE RESTRICT
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- content_associated_keyword
|
|
-- ---------------------------------------------------------------------
|
|
|
|
DROP TABLE IF EXISTS `content_associated_keyword`;
|
|
|
|
CREATE TABLE `content_associated_keyword`
|
|
(
|
|
`content_id` INTEGER NOT NULL,
|
|
`keyword_id` INTEGER NOT NULL,
|
|
`position` INTEGER NOT NULL,
|
|
`created_at` DATETIME,
|
|
`updated_at` DATETIME,
|
|
PRIMARY KEY (`content_id`,`keyword_id`),
|
|
INDEX `idx_content_associated_keyword_content_id` (`content_id`),
|
|
INDEX `idx_content_associated_keyword_keyword_id` (`keyword_id`),
|
|
CONSTRAINT `fk_content_associated_keyword_content_id`
|
|
FOREIGN KEY (`content_id`)
|
|
REFERENCES `content` (`id`)
|
|
ON UPDATE RESTRICT
|
|
ON DELETE CASCADE,
|
|
CONSTRAINT `fk_content_associated_keyword_keyword_id`
|
|
FOREIGN KEY (`keyword_id`)
|
|
REFERENCES `keyword` (`id`)
|
|
ON UPDATE RESTRICT
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- folder_associated_keyword
|
|
-- ---------------------------------------------------------------------
|
|
|
|
DROP TABLE IF EXISTS `folder_associated_keyword`;
|
|
|
|
CREATE TABLE `folder_associated_keyword`
|
|
(
|
|
`folder_id` INTEGER NOT NULL,
|
|
`keyword_id` INTEGER NOT NULL,
|
|
`position` INTEGER NOT NULL,
|
|
`created_at` DATETIME,
|
|
`updated_at` DATETIME,
|
|
PRIMARY KEY (`folder_id`,`keyword_id`),
|
|
INDEX `idx_folder_associated_keyword_folder_id` (`folder_id`),
|
|
INDEX `idx_folder_associated_keyword_keyword_id` (`keyword_id`),
|
|
CONSTRAINT `fk_folder_associated_keyword_folder_id`
|
|
FOREIGN KEY (`folder_id`)
|
|
REFERENCES `folder` (`id`)
|
|
ON UPDATE RESTRICT
|
|
ON DELETE CASCADE,
|
|
CONSTRAINT `fk_folder_associated_keyword_keyword_id`
|
|
FOREIGN KEY (`keyword_id`)
|
|
REFERENCES `keyword` (`id`)
|
|
ON UPDATE RESTRICT
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- category_associated_keyword
|
|
-- ---------------------------------------------------------------------
|
|
|
|
DROP TABLE IF EXISTS `category_associated_keyword`;
|
|
|
|
CREATE TABLE `category_associated_keyword`
|
|
(
|
|
`category_id` INTEGER NOT NULL,
|
|
`keyword_id` INTEGER NOT NULL,
|
|
`position` INTEGER NOT NULL,
|
|
PRIMARY KEY (`category_id`,`keyword_id`),
|
|
INDEX `idx_category_associated_keyword_category_id` (`category_id`),
|
|
INDEX `idx_category_associated_keyword_keyword_id` (`keyword_id`),
|
|
CONSTRAINT `fk_category_associated_keyword_category_id`
|
|
FOREIGN KEY (`category_id`)
|
|
REFERENCES `category` (`id`)
|
|
ON UPDATE RESTRICT
|
|
ON DELETE CASCADE,
|
|
CONSTRAINT `fk_category_associated_keyword_keyword_id`
|
|
FOREIGN KEY (`keyword_id`)
|
|
REFERENCES `keyword` (`id`)
|
|
ON UPDATE RESTRICT
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- product_associated_keyword
|
|
-- ---------------------------------------------------------------------
|
|
|
|
DROP TABLE IF EXISTS `product_associated_keyword`;
|
|
|
|
CREATE TABLE `product_associated_keyword`
|
|
(
|
|
`product_id` INTEGER NOT NULL,
|
|
`keyword_id` INTEGER NOT NULL,
|
|
`position` INTEGER NOT NULL,
|
|
`created_at` DATETIME,
|
|
`updated_at` DATETIME,
|
|
PRIMARY KEY (`product_id`,`keyword_id`),
|
|
INDEX `idx_product_associated_keyword_product_id` (`product_id`),
|
|
INDEX `idx_product_associated_keyword_keyword_id` (`keyword_id`),
|
|
CONSTRAINT `fk_product_associated_keyword_product_id`
|
|
FOREIGN KEY (`product_id`)
|
|
REFERENCES `product` (`id`)
|
|
ON UPDATE RESTRICT
|
|
ON DELETE CASCADE,
|
|
CONSTRAINT `fk_product_associated_keyword_keyword_id`
|
|
FOREIGN KEY (`keyword_id`)
|
|
REFERENCES `keyword` (`id`)
|
|
ON UPDATE RESTRICT
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- keyword_group_i18n
|
|
-- ---------------------------------------------------------------------
|
|
|
|
DROP TABLE IF EXISTS `keyword_group_i18n`;
|
|
|
|
CREATE TABLE `keyword_group_i18n`
|
|
(
|
|
`id` INTEGER NOT NULL,
|
|
`locale` VARCHAR(5) DEFAULT 'en_US' NOT NULL,
|
|
`title` VARCHAR(255),
|
|
`description` LONGTEXT,
|
|
`chapo` TEXT,
|
|
`postscriptum` TEXT,
|
|
PRIMARY KEY (`id`,`locale`),
|
|
CONSTRAINT `keyword_group_i18n_FK_1`
|
|
FOREIGN KEY (`id`)
|
|
REFERENCES `keyword_group` (`id`)
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
-- ---------------------------------------------------------------------
|
|
-- keyword_i18n
|
|
-- ---------------------------------------------------------------------
|
|
|
|
DROP TABLE IF EXISTS `keyword_i18n`;
|
|
|
|
CREATE TABLE `keyword_i18n`
|
|
(
|
|
`id` INTEGER NOT NULL,
|
|
`locale` VARCHAR(5) DEFAULT 'en_US' NOT NULL,
|
|
`title` VARCHAR(255),
|
|
`description` LONGTEXT,
|
|
`chapo` TEXT,
|
|
`postscriptum` TEXT,
|
|
PRIMARY KEY (`id`,`locale`),
|
|
CONSTRAINT `keyword_i18n_FK_1`
|
|
FOREIGN KEY (`id`)
|
|
REFERENCES `keyword` (`id`)
|
|
ON DELETE CASCADE
|
|
) ENGINE=InnoDB;
|
|
|
|
# This restores the fkey checks, after having unset them earlier
|
|
SET FOREIGN_KEY_CHECKS = 1;
|