Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
03.06.2024
Размер:
2.14 Mб
Скачать

Приложение б. Код для создания базы данных

Листинг 17 – SQL-скрипт для создания базы данных

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

-- -----------------------------------------------------

-- Schema mydb

-- -----------------------------------------------------

-- -----------------------------------------------------

-- Schema tv_advertising_company

-- -----------------------------------------------------

-- -----------------------------------------------------

-- Schema tv_advertising_company

-- -----------------------------------------------------

CREATE SCHEMA IF NOT EXISTS `tv_advertising_company` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci ;

USE `tv_advertising_company` ;

-- -----------------------------------------------------

-- Table `tv_advertising_company`.`advertisements`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `tv_advertising_company`.`advertisements` (

`ad_id` INT NOT NULL AUTO_INCREMENT,

`ad_name` VARCHAR(45) NOT NULL,

`duration_minutes` INT NOT NULL,

PRIMARY KEY (`ad_id`))

ENGINE = InnoDB

AUTO_INCREMENT = 1001

DEFAULT CHARACTER SET = utf8mb4

COLLATE = utf8mb4_0900_ai_ci;

-- -----------------------------------------------------

-- Table `tv_advertising_company`.`agents`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `tv_advertising_company`.`agents` (

`agent_id` INT NOT NULL AUTO_INCREMENT,

`agent_name` VARCHAR(100) NOT NULL,

`commission_rate` DECIMAL(3,2) NOT NULL,

PRIMARY KEY (`agent_id`))

ENGINE = InnoDB

AUTO_INCREMENT = 1001

DEFAULT CHARACTER SET = utf8mb4

COLLATE = utf8mb4_0900_ai_ci;

-- -----------------------------------------------------

-- Table `tv_advertising_company`.`customers`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `tv_advertising_company`.`customers` (

`customer_id` INT NOT NULL AUTO_INCREMENT,

`customer_name` VARCHAR(100) NOT NULL,

`bank_details` VARCHAR(255) NOT NULL,

`phone_number` VARCHAR(20) NOT NULL,

`contact_person` VARCHAR(100) NOT NULL,

PRIMARY KEY (`customer_id`))

ENGINE = InnoDB

AUTO_INCREMENT = 1001

DEFAULT CHARACTER SET = utf8mb4

COLLATE = utf8mb4_0900_ai_ci;

-- -----------------------------------------------------

-- Table `tv_advertising_company`.`deals`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `tv_advertising_company`.`deals` (

`deal_id` INT NOT NULL AUTO_INCREMENT,

`agent_id` INT NOT NULL,

`customer_id` INT NOT NULL,

`ad_id` INT NOT NULL,

`deal_date` DATE NULL,

`deal_time` TIME NULL,

PRIMARY KEY (`deal_id`),

INDEX `agent_id` (`agent_id` ASC) VISIBLE,

INDEX `customer_id` (`customer_id` ASC) VISIBLE,

INDEX `ad_id` (`ad_id` ASC) VISIBLE,

CONSTRAINT `deals_agents_agent_id`

FOREIGN KEY (`agent_id`)

REFERENCES `tv_advertising_company`.`agents` (`agent_id`),

CONSTRAINT `deals_customers_customer_id`

FOREIGN KEY (`customer_id`)

REFERENCES `tv_advertising_company`.`customers` (`customer_id`),

CONSTRAINT `deals_advertisements_ad_id`

FOREIGN KEY (`ad_id`)

REFERENCES `tv_advertising_company`.`advertisements` (`ad_id`))

ENGINE = InnoDB

AUTO_INCREMENT = 1001

DEFAULT CHARACTER SET = utf8mb4

COLLATE = utf8mb4_0900_ai_ci;

-- -----------------------------------------------------

-- Table `tv_advertising_company`.`shows`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `tv_advertising_company`.`shows` (

`show_id` INT NOT NULL AUTO_INCREMENT,

`show_name` VARCHAR(100) NOT NULL,

`rating` DECIMAL(3,2) NOT NULL,

`cost_per_minute` DECIMAL(10,2) NOT NULL,

PRIMARY KEY (`show_id`))

ENGINE = InnoDB

AUTO_INCREMENT = 1001

DEFAULT CHARACTER SET = utf8mb4

COLLATE = utf8mb4_0900_ai_ci;

-- -----------------------------------------------------

-- Table `tv_advertising_company`.`display_schedule`

-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `tv_advertising_company`.`display_schedule` (

`display_id` INT NOT NULL AUTO_INCREMENT,

`ad_id` INT NOT NULL,

`show_id` INT NOT NULL,

`display_date` DATE NOT NULL,

`display_time` TIME NOT NULL,

PRIMARY KEY (`display_id`),

INDEX `fk_advertisements_has_shows_shows1_idx` (`show_id` ASC) VISIBLE,

INDEX `fk_advertisements_has_shows_advertisements1_idx` (`ad_id` ASC) VISIBLE,

CONSTRAINT `ds_advertisements_ad_id`

FOREIGN KEY (`ad_id`)

REFERENCES `tv_advertising_company`.`advertisements` (`ad_id`)

ON DELETE NO ACTION

ON UPDATE NO ACTION,

CONSTRAINT `ds_shows_show_id`

FOREIGN KEY (`show_id`)

REFERENCES `tv_advertising_company`.`shows` (`show_id`)

ON DELETE NO ACTION

ON UPDATE NO ACTION)

ENGINE = InnoDB

DEFAULT CHARACTER SET = utf8mb4

COLLATE = utf8mb4_0900_ai_ci;

SET SQL_MODE=@OLD_SQL_MODE;

SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;