Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код |
103481 |
Дата создания |
2016 |
Страниц |
10
|
Мы сможем обработать ваш заказ (!) 25 декабря в 12:00 [мск] Файлы будут доступны для скачивания только после обработки заказа.
|
Содержание
СОДЕРЖАНИЕ
1. Агентство по продаже билетов 3
2. Схема базы данных, описание таблиц 4
3. SQL скрипты создания таблиц 5
4. Примеры запросов к базе данных 10
Фрагмент работы для ознакомления
description AS event_,
p.description AS place_,
p.address AS adress_,
s.name AS section_,
pr.price AS price_
FROM
section s,
tour t,
place p,
event e,
price pr
WHERE
s.id_place = p.id AND t.event_id = e.id
AND pr.tour_id = t.id
AND pr.section_id = s.id
ORDER BY t.datetime , e.description
Создадим функцию для проверки возраста покупателя. Функция принимает параметры: id_c – уникальный идентификатор покупателя, id_e – уникальный идентификатор мероприятия, функция возвращает 1, если возраст подходящий и 0 если нет.
CREATE FUNCTION `check_age`(id_c INT, id_e INT) RETURNS tinyint(1)
BEGIN
IF (SELECT
(YEAR(CURRENT_DATE)-YEAR(c.birthdate)) - RIGHT(CURRENT_DATE,5)<(RIGHT(c.birthdate,5))-e.agelimit
FROM customer c, event e
WHERE c.id=id_c
AND e.id=id_e)>0 THEN RETURN 1; ELSE RETURN 0; END IF;
END
Напишем процедуру создания билетов в базе данных.
CREATE PROCEDURE `new_tickets`(id_section INT, id_tour INT)
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE j INT DEFAULT 1;
WHILE i<20 DO
SET j=1;
WHILE j<25 DO
INSERT INTO `mydb`.`ticket` (`lane`, `seat`, `id_section`, `id_tour`) VALUES (i, j, id_section, id_tour);
SET j=j+1;
END WHILE;
SET i=i+1;
END WHILE;
END
Создадим триггер, который перед вставкой в таблицу SALE будет вызывать функцию check_age. Продажи билета не будет, если возраст покупателя не подходит.
CREATE TRIGGER `sale_BEFORE_INSERT` BEFORE INSERT ON `sale` FOR EACH ROW
BEGIN
IF (SELECT check_age(NEW.id_ticket,NEW.id_customer))=1 THEN
SET NEW.id_ticket=NEW.id_ticket,
NEW.id_customer=NEW.id_customer,
NEW.DATETIME=NEW.DATETIME;
ELSE
SET NEW.id_ticket=0,
NEW.id_customer=NEW.id_customer,
NEW.DATETIME=NOW();
END IF;
END
Примеры запросов к базе данных
К полученной базе можно обращаться с помощью SQL запросов. Например, выберем все мероприятия, которые пройдут в определенном месте из расписания (представление SHEDULE).
SELECT * FROM mydb.shedule
WHERE place_='Большой Концертный Зал'
AND datetime_>NOW();
Или всех клиентов купивших билет на концерт.
SELECT c.name, t.id, e.description FROM
mydb.customer c,
mydb.sale s,
mydb.ticket t,
mydb.tour tr,
mydb.event e
WHERE c.id=s.id_customer
AND s.id_ticket=t.id
AND tr.id=t.id_tour
AND tr.event_id=e.id
2
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00434