-- -----------------------------------------------------
-- Table `blog`.`users`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `blog`.`users` (
`id_user` SMALLINT UNSIGNED NOT NULL ,
`email` VARCHAR(255) NOT NULL COMMENT 'E-Mail пользователя (уникальный)' ,
`password` VARCHAR(255) NOT NULL COMMENT 'Пароль пользователя' ,
`role` TINYINT UNSIGNED NOT NULL DEFAULT 3 COMMENT '1 - administrator\n2 - moderator\n3 - user\n4 - guest' ,
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '1 - активирован\n2 - ожидает активации\n3 - бан\n0 - удален' ,
`name` VARCHAR(255) NOT NULL COMMENT 'Имя пользователя' ,
`date_reg` DATETIME NOT NULL COMMENT 'Дата регистрации' ,
`date_del` DATETIME NULL COMMENT 'Дата удаления пользователя' ,
`sex` TINYINT UNSIGNED NULL COMMENT '1 - мужской\n2 - женский' ,
`city` VARCHAR(255) NULL COMMENT 'Город' ,
`age` TINYINT UNSIGNED NULL COMMENT 'Возраст' ,
PRIMARY KEY (`id_user`) ,
INDEX `ix_users_name` (`name` ASC) ,
UNIQUE INDEX `email_UNIQUE` (`email` ASC) )
COMMENT = 'Таблица пользователей';
-- -----------------------------------------------------
-- Table `blog`.`category`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `blog`.`category` (
`id_category` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_user` SMALLINT UNSIGNED NOT NULL COMMENT 'ID пользователя, создавшего категорию' ,
`alias` VARCHAR(255) NOT NULL COMMENT 'Алиас категории' ,
`title` VARCHAR(255) NOT NULL COMMENT 'Название категории' ,
`desc` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Описание категории' ,
`created` DATETIME NOT NULL COMMENT 'Дата создания' ,
`modify` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Дата изменения' ,
PRIMARY KEY (`id_category`) ,
INDEX `ix_category_id_user` (`id_user` ASC) ,
INDEX `ix_category_title` (`title` ASC) ,
CONSTRAINT `fk_category_users`
FOREIGN KEY (`id_user` )
REFERENCES `blog`.`users` (`id_user` )
ON DELETE RESTRICT
ON UPDATE CASCADE)
ENGINE = InnoDB
COMMENT = 'Таблица категорий';
-- -----------------------------------------------------
-- Table `blog`.`articles`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `blog`.`articles` (
`id_article` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_user` SMALLINT UNSIGNED NOT NULL COMMENT 'ID пользователя, опубликовавшего статью' ,
`id_category` SMALLINT UNSIGNED NULL DEFAULT NULL COMMENT 'ID категории, к которой принадлежит статья' ,
`alias` VARCHAR(255) NOT NULL COMMENT 'Алиас статьи' ,
`title` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Тайтл для тега title' ,
`desc` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Описание' ,
`keyw` VARCHAR(255) NOT NULL DEFAULT '' COMMENT 'Ключи' ,
`robot` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '1 - index, follow\n2 - noindex, nofollow\n3 - index, nofollow\n4 - noindex, follow' ,
`article` TEXT NOT NULL COMMENT 'Тело статьи' ,
`cnt_comments` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Кол-во комментариев' ,
`created` DATETIME NOT NULL COMMENT 'Дата создания' ,
`modify` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Дата изменения' ,
`end_public` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Дата окончания публикации' ,
`rating_good` SMALLINT NOT NULL DEFAULT 0 COMMENT 'Положительный рейтинг' ,
`rating_bad` SMALLINT NOT NULL DEFAULT 0 COMMENT 'Отрицательный рейтинг' ,
`rating_all` SMALLINT NOT NULL DEFAULT 0 COMMENT 'Сумма положительного и отрицательного рейтинга' ,
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '1 - публикуется\n2 - на модерации\n3 - не публикуется\n0 - удалена' ,
`hits` SMALLINT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Кол-во просмотров' ,
PRIMARY KEY (`id_article`) ,
INDEX `ix_articles_id_user` (`id_user` ASC) ,
INDEX `ix_articles_id_category` (`id_category` ASC) ,
CONSTRAINT `fk_articles_users`
FOREIGN KEY (`id_user` )
REFERENCES `blog`.`users` (`id_user` )
ON DELETE RESTRICT
ON UPDATE CASCADE,
CONSTRAINT `fk_articles_category`
FOREIGN KEY (`id_category` )
REFERENCES `blog`.`category` (`id_category` )
ON DELETE SET NULL
ON UPDATE CASCADE)
ENGINE = InnoDB
COMMENT = 'Таблица статей';
-- -----------------------------------------------------
-- Table `blog`.`comments`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `blog`.`comments` (
`id_comments` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_user` SMALLINT UNSIGNED NULL ,
`id_article` SMALLINT UNSIGNED NOT NULL ,
`comment` TEXT NOT NULL COMMENT 'Тело комментария' ,
`date_create` DATETIME NOT NULL COMMENT 'Дата создания' ,
`modify` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Дата изменения' ,
`rating_good` SMALLINT NOT NULL DEFAULT 0 COMMENT 'Положительный рейтинг' ,
`rating_bad` SMALLINT NOT NULL DEFAULT 0 COMMENT 'Отрицательный рейтинг' ,
`rating_all` SMALLINT NOT NULL DEFAULT 0 COMMENT 'Сумма положительного и отрицательного рейтинга' ,
`status` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '1 - публикуется\n2 - на модерации\n3 - не публикуется\n0-удален' ,
PRIMARY KEY (`id_comments`) ,
INDEX `ix_comments_id_user` (`id_user` ASC) ,
INDEX `ix_comments_id_article` (`id_article` ASC) ,
CONSTRAINT `fk_comments_users`
FOREIGN KEY (`id_user` )
REFERENCES `blog`.`users` (`id_user` )
ON DELETE SET NULL
ON UPDATE CASCADE,
CONSTRAINT `fk_comments_articles`
FOREIGN KEY (`id_article` )
REFERENCES `blog`.`articles` (`id_article` )
ON DELETE RESTRICT
ON UPDATE CASCADE)
ENGINE = InnoDB
COMMENT = 'Таблица комментариев';
-- -----------------------------------------------------
-- Table `blog`.`Img_art`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `blog`.`Img_art` (
`id_Img_art` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID изображения в статье' ,
`id_article` SMALLINT UNSIGNED NOT NULL ,
`id_user` SMALLINT UNSIGNED NOT NULL ,
`url` VARCHAR(255) NOT NULL COMMENT 'Адрес ссылки на изображение' ,
`alt` VARCHAR(255) NOT NULL DEFAULT '' ,
`title` VARCHAR(255) NOT NULL DEFAULT '' ,
PRIMARY KEY (`id_Img_art`) ,
INDEX `ix_Images_art_id_article` (`id_article` ASC) ,
INDEX `ix_Images_art_id_user` (`id_user` ASC) ,
CONSTRAINT `fk_img_art_articles`
FOREIGN KEY (`id_article` )
REFERENCES `blog`.`articles` (`id_article` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_img_art_users`
FOREIGN KEY (`id_user` )
REFERENCES `blog`.`users` (`id_user` )
ON DELETE RESTRICT
ON UPDATE CASCADE)
ENGINE = InnoDB
COMMENT = 'Изображения в статьях';
-- -----------------------------------------------------
-- Table `blog`.`albums_users`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `blog`.`albums_users` (
`id_image_user` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_user` SMALLINT UNSIGNED NOT NULL ,
`url` VARCHAR(255) NOT NULL ,
`alt` VARCHAR(255) NOT NULL DEFAULT '' ,
`title` VARCHAR(255) NOT NULL DEFAULT '' ,
PRIMARY KEY (`id_image_user`) ,
INDEX `ix_albums_users_id_user` (`id_user` ASC) ,
CONSTRAINT `fk_albums_users_users`
FOREIGN KEY (`id_user` )
REFERENCES `blog`.`users` (`id_user` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
COMMENT = 'Картинки в альбомах пользователей';
-- -----------------------------------------------------
-- Table `blog`.`img_comm`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `blog`.`img_comm` (
`id_img_comm` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`id_user` SMALLINT UNSIGNED NULL DEFAULT NULL ,
`id_comments` SMALLINT UNSIGNED NOT NULL ,
`url` VARCHAR(255) NOT NULL ,
`alt` VARCHAR(255) NOT NULL DEFAULT '' ,
`title` VARCHAR(255) NOT NULL DEFAULT '' ,
PRIMARY KEY (`id_img_comm`) ,
INDEX `fk_img_comm_users1_idx` (`id_user` ASC) ,
INDEX `fk_img_comm_comments1_idx` (`id_comments` ASC) ,
CONSTRAINT `fk_img_comm_users`
FOREIGN KEY (`id_user` )
REFERENCES `blog`.`users` (`id_user` )
ON DELETE SET NULL
ON UPDATE CASCADE,
CONSTRAINT `fk_img_comm_comments`
FOREIGN KEY (`id_comments` )
REFERENCES `blog`.`comments` (`id_comments` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB
COMMENT = 'Картинки в комментариях';