
- •Введение
- •Анализ предметной области
- •Анализ сущностей и связей между ними
- •Составление запросов к базе данных и их инкапсуляция
- •Реализация пользователей и предоставление им прав
- •Реализация триггеров
- •Реализация пользовательского интерфейса
- •Заключение
- •Список использованных источников
- •Приложение а. Скриншоты заполненных таблиц
- •Приложение б. Код для создания базы данных
- •Приложение в. Код для создания графического интерфейса
Приложение б. Код для создания базы данных
Листинг 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;