|
|
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Добрый день. Создаю в качестве дипломного проекта портал кинотеатра. Сам проект по себе не сложный, пока я не начинаю задумываться о бронировании билета на сеанс. Вот тут то у меня мысли разбегаются и я даже не знаю с чего начать ^^ Поэтому просьба-вопрос: Как по вашему сделать хранение информации о бронировании (структура БД) , если: У кинотеатра есть N залов. В каждом зале N мест. Есть какой-то фильм. Фильм идет в такое-то время в таком-то зале. На данный фильм в такое-то время бронируется до 5 таких-то мест. Портал пишется-проектируется на Django, БД Postgre, бронирование будет на ajax визуальное. Буду благодарен за любую помощь или совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 08:22 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Таблица залов (ИД зала) Таблица мест в зале (ИД зала, ИД места, Номер ряда, Номер места) Таблица расписание сеансов в зале (ИД зала, ИД сеанса, С даты, По дату, Время начала, Время конца) Таблица бронирования и оплаты (Дата, ИД сеанса, ИД места, Статус места:Свободно, Забронировано. Оплачено) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 09:40 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Забыл, Таблица Брони (ИД брони, ФИО, ID сеанса, Кол-во мест) В таблицу бронирования добавить ИД брони. Схема не полностью нормализована, таблица Брони и таблица Бронирования и оплаты частично пересекаются, но в таком виде удобнее для ввода данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 09:43 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Программист-Любитель, авторТаблица расписание сеансов в зале (ИД зала, ИД сеанса, С даты, По дату, Время начала, Время конца) А что, вариант "с утра в этом зале идет "Гробокопатель" два раза, днем в час "Солнечные зайчики в волшебном городе", и только в шесть до двух(а куда, кстати, эти 2 ночи девать?) нашумевшая мелодрама "Он, она и его любовники""? Так что надо бы таблицы Фильм(ид, название, описание, жанр и т.п.) Идетвзале(ид залы, ид фильмы, начало таймстамп, продолжительность интервал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 12:35 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо за полный! и оперативный ответ. Теперь я наконец понимаю к какому виду все нужно привести. Из вашего примера выкинул только количество мест, так как не совсем понимаю как их отслеживать в приложении, ведь пользователь может выбрать и из разных рядов места. Хотя может я чего-то не понимаю. Накидал схему в ервине. Я правильно вас понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 12:45 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Author the new oneПрограммист-Любитель, авторТаблица расписание сеансов в зале (ИД зала, ИД сеанса, С даты, По дату, Время начала, Время конца) А что, вариант "с утра в этом зале идет "Гробокопатель" два раза, днем в час "Солнечные зайчики в волшебном городе", и только в шесть до двух(а куда, кстати, эти 2 ночи девать?) нашумевшая мелодрама "Он, она и его любовники""? Так что надо бы таблицы Фильм(ид, название, описание, жанр и т.п.) Идетвзале(ид залы, ид фильмы, начало таймстамп, продолжительность интервал) Так Программист любитель вроде бы указал это : Таблица расписание сеансов в зале (ИД зала, ИД сеанса, С даты, По дату, Время начала, Время конца) Тут как бы и есть таймстарт и время начала, зачем интервал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 12:50 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
SmallWorkerAuthor the new oneПрограммист-Любитель, пропущено... А что, вариант "с утра в этом зале идет "Гробокопатель" два раза, днем в час "Солнечные зайчики в волшебном городе", и только в шесть до двух(а куда, кстати, эти 2 ночи девать?) нашумевшая мелодрама "Он, она и его любовники""? Так что надо бы таблицы Фильм(ид, название, описание, жанр и т.п.) Идетвзале(ид залы, ид фильмы, начало таймстамп, продолжительность интервал) Так Программист любитель вроде бы указал это : Таблица расписание сеансов в зале (ИД зала, ИД сеанса, С даты, По дату, Время начала, Время конца) Тут как бы и есть таймстарт и время начала, зачем интервал? Затем, что бывают очень ночные сеансы, конец которых перелазит в следующие сутки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 13:23 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Author the new oneИдетвзале(ид залы, ид фильмы, начало таймстамп, продолжительность интервал) "Идет в зале" это, по идее, и есть "сеанс". В сеансе id фильма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 13:40 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
ЫЗатем, что бывают очень ночные сеансы, конец которых перелазит в следующие сутки. Вот только геморроиться с ними ну решительно незачем. Нет ни одной причины. Если кинотеатр, как большинство, работает с кратким ночным перерывом - типа с 12 до 3 - то удобно считать, что это и есть один день, и к нему привязывать рабочие смены и всё остальное. И тогда пусть и начало, и конец сеанса перелезают в следующие сутки, никаких проблем. Если же даже кинотеатр круглосуточный, для идентификации сеанса более чем достаточно "дата-время начала", время завершения - параметр информационный, а дата завершения так и вовсе интересна только пьяным из анекдотов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 14:55 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
SmallWorkerAuthor the new oneПрограммист-Любитель, пропущено... А что, вариант "с утра в этом зале идет "Гробокопатель" два раза, днем в час "Солнечные зайчики в волшебном городе", и только в шесть до двух(а куда, кстати, эти 2 ночи девать?) нашумевшая мелодрама "Он, она и его любовники""? Так что надо бы таблицы Фильм(ид, название, описание, жанр и т.п.) Идетвзале(ид залы, ид фильмы, начало таймстамп, продолжительность интервал) Так Программист любитель вроде бы указал это : Таблица расписание сеансов в зале (ИД зала, ИД сеанса, С даты, По дату, Время начала, Время конца) Тут как бы и есть таймстарт и время начала, зачем интервал? Я имел в виду, что расписание сенансов меняется обычно каждую неделю и С даты По дату - это период, в течение которого данный фильм идет в данном зале. При этом фиксируется только время начала фильма. Если время конца будет меньше времени начала, значит фильм началался поздно ночью и переполз через 24:00. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 18:08 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
softwarerЫЗатем, что бывают очень ночные сеансы, конец которых перелазит в следующие сутки. Вот только геморроиться с ними ну решительно незачем. Нет ни одной причины. Если кинотеатр, как большинство, работает с кратким ночным перерывом - типа с 12 до 3 - то удобно считать, что это и есть один день, и к нему привязывать рабочие смены и всё остальное. И тогда пусть и начало, и конец сеанса перелезают в следующие сутки, никаких проблем. Если же даже кинотеатр круглосуточный, для идентификации сеанса более чем достаточно "дата-время начала", время завершения - параметр информационный, а дата завершения так и вовсе интересна только пьяным из анекдотов. Вот вы сами и объяснили, зачем интервал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 23:26 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
softwarer Если же даже кинотеатр круглосуточный, для идентификации сеанса более чем достаточно "дата-время начала", время завершения - параметр информационный, а дата завершения так и вовсе интересна только пьяным из анекдотов. Не согласен Программист-любительЯ имел в виду, что расписание сенансов меняется обычно каждую неделю и С даты По дату - это период, в течение которого данный фильм идет в данном зале. При этом фиксируется только время начала фильма. Если время конца будет меньше времени начала, значит фильм началался поздно ночью и переполз через 24:00. Примерно я так и думал. Есть фильм Котэ. Он идет: С даты: 1.12.2011 По дату: 7.12.2011 Каждый день с 1 числа по 7 он идет: Время начала 12-00, Время конца: 12-00+его длина Если в какой-то день нам нужно уникальное расписание, мы просто делаем дату начала и конца одинаковой. Ага, так и есть "подумал я" =) Хорошо что расписал, так как по моей схеме в бронирование надо будет добавить поле [Дата] чтоб мы знали на какой день из диапазона сеанса он идет. Как-то так получается, немного муторно в реализации запросов, зато удобно в админке делать сеансы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 23:53 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Особо не вникал, начало и длительность не устраивает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2011, 23:57 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
softwarer, автордля идентификации сеанса более чем достаточно "дата-время начала", время завершения - параметр информационный, а дата завершения так и вовсе интересна только пьяным из анекдотов. Вообще-то было бы неплохо иметь ограничение "в одном зале не может идти одновременно более одного фильма" и "сеанс не может быть назначен ранее чем через полчаса после окончания предыдущего". Ну и идея "дата начала показов-дата окончания показов" мне кажется довольно сомнительной - зачем дублировать данные, если она прекрасно вычисляется из таймстампа начала и интервала? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 13:54 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Author the new oneВообще-то было бы неплохо иметь ограничение "в одном зале не может идти одновременно более одного фильма" Если время начала и длительность произвольные, это ограничение плохо реализуется декларативной логикой. Хотя, помнится, я как-то извращался с пользовательским типом уникального индекса для решения этой задачи. Это то, что лучше делать на уровне ХП. Author the new oneи "сеанс не может быть назначен ранее чем через полчаса после окончания предыдущего". А это вообще не стоит специально обдумывать, проще прибавлять полчаса к проверяемому диапазону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 14:04 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
softwarer, авторЕсли время начала и длительность произвольные, это ограничение плохо реализуется декларативной логикой. Ну почему же - прекрасно в check'е реализуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 14:31 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Author the new onesoftwarer, авторЕсли время начала и длительность произвольные, это ограничение плохо реализуется декларативной логикой. Ну почему же - прекрасно в check'е реализуется. Можно пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 14:32 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
softwarer, Чего? check'а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 14:51 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Author the new onesoftwarer, Чего? check'а? Да. Вернее, структуры данных вместе с чеком. Думаю, вполне хватит таблички (id, date_from, date_to), но не хочу ограничивать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 15:04 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
softwarer, Вы что, действительно не в курсе? Постгрес Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Для других серверов по мотивам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 15:19 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
softwarer, Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 15:21 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Author the new oneВы что, действительно не в курсе? Да, я действительно не в курсе. Более того, я искренне надеюсь, что большинство СУБД не дают столь простой возможности порушить целостность данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 15:26 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
softwarer, Хм, вот так нашлась какая-то бага в форуме. Но, думаю, и так все ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 15:27 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
softwarer, Ну, Вам кроме постгреса осталось уговорить как минимум Oracle, DB2 и Microsoft - и тогда мир предстанет перед Вами немножечко более гармоничным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 15:36 |
|
||
|
Проектирование бронирования
|
|||
|---|---|---|---|
|
#18+
Author the new onesoftwarer, Ну, Вам кроме постгреса осталось уговорить как минимум Oracle, DB2 и Microsoft - и тогда мир предстанет перед Вами немножечко более гармоничным. Ну, про оракла Вы мне пожалуйста не пойте, в нём такое ограничение делается другими, нормальными механизмами. Про db2 и ms не скажу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2011, 15:42 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37554212&tid=1541916]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 541ms |

| 0 / 0 |
