Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите создать БД SQL 
:(
    Опции темы
SymplyFying
Дата 20.4.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



Здраствуйте, помогите решить задачку:
Цитата

Продажа билетов в кинотеатре:
БД должна содержать информацию о идущих фильмах: "Название", "Жанр", "Продолжительность", "Атёры", "Годы выпуска", "Производитель", "Страна", и др. О сеансах: "Начало", "Окончание", "Продолжительность". О ценах на билеты, о продаже билетов, о свободных местах.

Разработка структуры:
1) Уточнение задания
2) Анализ предметной области, определение сущностей и связей
3) Нормализация
4) Проектирование таблиц

Язык SQL:
1) Создать все таблицы в БД
2) Заполнить таблицы информацией(по 5-10 записей)
3) Выборка данных(примерно 10 запросов по всем изученным возможностям)
4) По каждому запросу подробные комментарии и результат выполнения, если запрос на работу с данными для каждого запроса из п.3 приветсти содержание постановки.

Решение:
Код

/*Создаём базу данных и именем Cinema*/
CREATE DATABASE IF NOT EXISTS `Cinema`;
/*Все последующие действия будем вести с ней*/
USE `Cinema`;

/*Создаём таблицы*/

/*Структура таблицы `films`*/
CREATE TABLE IF NOT EXISTS `films` (
  /*идентификатор*/
  `id`          int(11) NOT NULL AUTO_INCREMENT,       
  /*название*/ 
  `name`          text NOT NULL,                
  /*жанр*/
  `genre`         text NOT NULL,                
  /*продолжительность*/
  `duration`      int(5) NOT NULL,              
  /*актёры*/
  `actors`        text NOT NULL,
  /*дата выпуска*/
  `release_date` date NOT NULL,
  /*производитель*/
  `developer`      varchar(50) NOT NULL,
  /*страна*/
  `country`      varchar(40) NOT NULL,
  /*ключевое поле id*/
  UNIQUE KEY `id` (`id`)
);

/*Дамп данных таблицы `films`, т.е. заполнение таблицы значениями*/
 
/*
Существуют следующие типы запросов:
SELECT – выбрать строки из таблиц; 
INSERT – добавить строки в таблицу; 
UPDATE – изменить строки в таблице; 
DELETE – удалить строки в таблице;
*/

/*В данном запросе мы добавляем данные в таблицу films*/
INSERT INTO 
`films` 
(`id`,`name`, `genre`, `duration`, `actors`, `release_date`, `developer`, `country`) 
VALUES 
/*тут данные вбиваемые в талицу*/;

/*Структура таблицы `seanses`*/
CREATE TABLE IF NOT EXISTS `seanses` (
  /*идентификатор*/
  `id`          int(11) NOT NULL AUTO_INCREMENT, 
  /*идентификатор фильма*/
  `film_id`          int(11) NOT NULL, 
  /*дата сеанса*/
  `seanse_date` date NOT NULL default,        
  /*начало*/ 
  `start`          datetime NOT NULL,                
  /*конец*/
  `stop`         datetime NOT NULL,                
  /*В результате нормализации таблиц поле "продолжительность" - было решено убрать из данной таблицы*/
  UNIQUE KEY `id` (`id`)
);

И в этом месте всё застопорилось. 

Как таблицу seanses заполнить таким образом, чтобы вручную вводить только start, а stop рассчитывался из условий: start + duration(продолжительность сеанса из таблицы films)?

Какие будут предлложения по определению структуры оставшейся части БД?
PM MAIL   Вверх
batigoal
Дата 22.4.2007, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 1
Всего: 151



Цитата(SymplyFying @  20.4.2007,  16:27 Найти цитируемый пост)
Как таблицу seanses заполнить таким образом, чтобы вручную вводить только start, а stop рассчитывался из условий: start + duration(продолжительность сеанса из таблицы films)?

Триггером.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Glip
Дата 22.4.2007, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 473
Регистрация: 30.12.2006

Репутация: нет
Всего: 18



Цитата(SymplyFying @  20.4.2007,  15:27 Найти цитируемый пост)
 /*В результате нормализации таблиц поле "продолжительность" - было решено убрать из данной таблицы*/

а почему? задача поставлена что продолжительность сеанса == продолжительности фильма ?
в жизни-то оно не так smile

Добавлено через 4 минуты и 38 секунд
я бы еще

  /*жанр*/

  /*актёры*/

  /*производитель*/

  /*страна*/

сделал разными таблицами.
в актёрах там вообще будет многие-ко-многим
жанров тоже к фильму можно привязать несколько.


--------------------
user posted image
PM MAIL   Вверх
SergeBS
Дата 23.4.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 1
Всего: 22



SymplyFying, 
Вообще-то тебе в Центр помощи
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1337 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.