powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Спроектировать БД Гостиницы
25 сообщений из 40, страница 1 из 2
Спроектировать БД Гостиницы
    #37745925
Leone1930
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите спроектировать БД гостиницы. БД очень простенькая, но у меня есть проблемы с проектированием.

Спроектируйте базу данных (БД) таким образом, чтобы она находилась не менее, чем в третьей нормальной форме.
Спроектировать БД гостиницы. Известны данные о постояльцах (Ф,И,О, дата_рождения, N_гостиничного номера, дата_въезда и дата_выезда) и данные о номерном фонде(N_гостиничного номера, тип номера, вид из номера, стоимость номера в зависимости от сезона). В одном номере могут проживать несколько человек.

Вот, что я напроектировал:
http://s018.radikal.ru/i508/1204/d4/e1a1565d4b7bt.jpg

На это мне сказали, что:
1. связь номера-клиенты многие-ко многим, это значит, что Вам нужна еще одна таблица.
2. Не нужно создавать отдельные таблицы по каждый сезон, тем более, что границы сезона не определены и неясно, как рассчитать стоимость проживания, если клиент заехал в один сезон, а выезжает, прожив какое-то время, в другой сезон.

Подскажите с организацией связей, или какие таблицы создать, а дальше уж я сам постараюсь дотумкать. :)
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37745928
Leone1930
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как-то коряво картинка выложилась.. То, что я напроектировал, отображено в прикрепленной картинке.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37746606
SignOff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leone1930,

Тебе точно надо 3 пацанская форма ? Иногда и денормализварванная нормально канает.

Таблицы

Вид и Тип
Оставляем
Номера:
ИД, Тип, Вид

Клиенты:
ИД, ИмяИД, ФамилияИД, ОтчествоИД, ДатаРожденияИД (все интежер :) )
Имена:
ИД, Имя
Отчества:
ИД, Имя
Фамилии:
ИД, Имя
Даты:
ИД, Дата


Сезоны:
ИД, Наименование
Цены:
ИД (Я так понимаю это Год :) ), СезонИД, Цена (Децимал или Мани юзать, но не флоат)

НомерКлиент:
ИДНомера, ИДКлиента, Дата, ЦенаСезонаИД


ВОт примерно вот так. Хотя с ценобразованием у вас проблемы :) Но эта пацанская форма будет гибкой чтбы встретить изменения :).
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37746993
Leone1930
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SignOff,

3 форма точно нужна :)
Спасибо, попробую создать указанные тобой таблицы.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747122
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leone1930Подскажите с организацией связей, или какие таблицы создать, а дальше уж я сам постараюсь дотумкать. :)
Ну давайте попробуем.

Гостиница состоит из какого-то количества номеров. Каждый номер относится к одной из категорий - где категория по заданию включает тип и вид (а по-хорошему также наличие балкона и прочие подобные факторы). Номера в каждой категории считаются равноценными. Год состоит из какого-то количества сезонов. Каждый сезон характеризуется датами начала и окончания. Каждой категории для каждого сезона проставляются цены (по Вашему заданию - одна, а вообще должно быть понятие типа цены - поскольку их проставляется куча разных, например, стоимость проживания двух человек в двойном номере не равна стоимости проживания там одного человека и не равна удвоенной стоимости проживания одного человека). Для проживания в гостинице создаются заказы. Заказ включает в себя один или несколько номеров, каждый на свой интервал дат. К заказу привязываются один или несколько клиентов, каждый на некоторый интервал дат.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747227
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leone1930Как-то коряво картинка выложилась.. То, что я напроектировал, отображено в прикрепленной картинке.
У Вас огромное количество ошибок. Поясню на примере. Фамилия, конечно же, является самостоятельной сущностью, а вовсе не свойством сущности Клиент, как у Вас. И т.д. То есть, до третьей нормальной формы Вам еще как до луны))
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747245
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаФамилия, конечно же, является самостоятельной сущностью,
Вмемориз (с)

БредятинаТо есть, до третьей нормальной формы Вам еще как до луны))
Вы так говорите, будто высказанная Вами бредятина имеет хоть какое-то отношение к третьей нормальной форме.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747257
SignOff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerLeone1930Подскажите с организацией связей, или какие таблицы создать, а дальше уж я сам постараюсь дотумкать. :)
Ну давайте попробуем.

Гостиница состоит из какого-то количества номеров. Каждый номер относится к одной из категорий - где категория по заданию включает тип и вид (а по-хорошему также наличие балкона и прочие подобные факторы). Номера в каждой категории считаются равноценными. Год состоит из какого-то количества сезонов. Каждый сезон характеризуется датами начала и окончания. Каждой категории для каждого сезона проставляются цены (по Вашему заданию - одна, а вообще должно быть понятие типа цены - поскольку их проставляется куча разных, например, стоимость проживания двух человек в двойном номере не равна стоимости проживания там одного человека и не равна удвоенной стоимости проживания одного человека). Для проживания в гостинице создаются заказы. Заказ включает в себя один или несколько номеров, каждый на свой интервал дат. К заказу привязываются один или несколько клиентов, каждый на некоторый интервал дат.


Извините - но вы несколько переиначили изначальную задачу. Напримре, периоды не играют роль. Заказы - о ни х речь не шла.
Я думаю ваши усложнения не имеют к задаче место.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747269
SignOff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SignOff,

А что - фамилия может повторятся - значит ее в табличку и выносим - издержки 3 нормальной формы.
Потому я и вынес имя фамилию и отчество :)

А что - вот какой то тщедушный программистишко впаяет контрол который автозаполняет - не дергать же по дистинкту данные клиента... А так он дёрнет себе табличку с например с именами - и все расцвело цветами радуги - у юзверя ручки не полят вносить одни и тее значения, база не дрюкаеца на каждый пых. Да просто рай... :) Потом парограммистишко пойдет тим лидом - ведь прогресс то какой. И всем приятно :)
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747307
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SignOffИзвините - но вы несколько переиначили изначальную задачу.
Я подчеркнул правильные решения намеченных в изначальной задаче вопрос.

SignOffНапримре, периоды не играют роль.
Это неправда. Если речь о сезонах, то - "стоимость номера в зависимости от сезона", если о постояльцах, то - "дата_въезда и дата_выезда". Цитата из постановки задачи.

SignOffЗаказы - о ни х речь не шла.
Видите ли, задача "спроектировать" немного отличается от задачи "тупо закодировать что дали". Прооектировщик должен подумать, как он собирается отразить в базе данных, например, следующую ситуацию: "Я приехал в гостиницу 01.06, взял номер 2+1 и поселился в нём с женой, ребёнком и младенцем. Заодно я снял номер 1+1 с 05.06, туда приехала пара наших подруг. 08.06 моя жена с детьми уехала, одна из подруг переселилась ко мне в номер, другая осталась в старом. 12.06 мы с подругой уехали, вторая подруга осталась до 14.06".

Я предлагаю топикстартеру решить этот вопрос введением сущности "заказы". Конечно, могут быть и другие решения - готов их выслушать и обсудить. А в том, что касается "речь не шла" - у хорошего преподавателя это будет вопрос разницы между тройкой и пятёркой.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747324
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerБредятинаФамилия, конечно же, является самостоятельной сущностью,
Вмемориз (с)

БредятинаТо есть, до третьей нормальной формы Вам еще как до луны))
Вы так говорите, будто высказанная Вами бредятина имеет хоть какое-то отношение к третьей нормальной форме.
Если Вам непонятно, что у фамилии есть, например, происхождение, то, конечно, Вам еще рано заниматься нормализацией)) Нужно закончить среднюю школу, для начала))
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747333
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаЕсли Вам непонятно, что у фамилии есть, например, происхождение,
Креативный критерий третьей нормальной формы. Дейт бы до такого никогда не додумался.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747337
SignOff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Ну да ну да - я как то дату въезда и выезда прошляпил. Уж больно меня картинка ниже шокировала :)

НОв этом и суть 3 пацанской формы - можно добавить и расширять БД не сильно коцая изначальное крео :)

Как правило в отелях на сутки снимают номер.
Номера окаывается могут иметь несколько мест - а жить 0..Н жильцов.
Как считать стоимость если заехал осенью выехал зимой просто - дата заезда - как правило везде.
Если так - то ты прав - надо Бронь делать табличку.

Да но дальше можно конечно распиывать до бесконечности. Думаю в 2500 табличек уложимся.

На собесах если меня спрашивают аля "постройте ЕРД а мы посмеемся" - я как правило не вылажу за рамки токо что нацарапано в задачке: нужно уважать и себя и того кто ее нацарапал в конце концов :)
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747355
SignOff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Номаная форма - это максимизация жлобизма на байтах :)

Это хорошо понятно когда БД были на магнитных лентах - это ж прикинь чтобы выбрать данные надо было мотать эту ленту тудым сюдым до отчаяния.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747357
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerБредятинаЕсли Вам непонятно, что у фамилии есть, например, происхождение,
Креативный критерий третьей нормальной формы. Дейт бы до такого никогда не додумался.
Разумеется, если опираться на "функциональные зависимости" и "ключи". К счастью, все намного проще. Достаточно ответить на вопрос: не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью?)
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747364
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маленький наводящий вопрос. Вот например скажет вам начальник,что цена на номера на время проведения чемпионата европы по футболу в вашем городе совсем другая. Как вы это запрограммируете в вашей структуре?
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747387
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SignOffНоманая форма - это максимизация жлобизма на байтах :)
Знаете, я как-то в форуме одной онлайн игрушки поспорил с оракловым админом из МТС-а и на спор уложил данные этой игрушки в таблицу со средним размером строки, кажется, 90 байт при том, что, как он утверждал, потребуется не менее 150. И это - не пользуясь битами и прочими способами значительно усложнить выборку информации. К чему это я.. нормальные формы тут не при чём :)
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747404
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_oldМаленький наводящий вопрос. Вот например скажет вам начальник,что цена на номера на время проведения чемпионата европы по футболу в вашем городе совсем другая. Как вы это запрограммируете в вашей структуре?
Не понял, к кому это вопрос. Если ко мне - то оно уже запрограммировано, в табличке "сезоны". Равно как и, например, сезон белых ночей в Питере.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747407
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаК счастью, все намного проще. Достаточно ответить на вопрос: не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью?)
Да, это очень важный вопрос. Один из тех, которые позволяют за пять секунд отличить практика от теоретика. Задавшись этим вопросом, теоретик пойдёт рассуждать о глобальной структуре нашего мира, а практик пойдёт к будущим пользователям и выяснит, часто ли они видят фамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747502
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторфамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова.
эх.... Буквы в фамилии "Сидоров" тоже обладают самостоятельным бытием.... так что.... уж нормализовать - так с музыкой!
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747528
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer... фамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова.
нет он перед бегом на лоб наклеивает тиа - "Постоялец Сидоров!!! Не путать с уборщиком Сидоровым!!!"
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747530
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весеннее обострение, Бредятина?

> не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью?

Я вижу, что вы старательно работали, прогресс очевиден. Но этого мало. Следующий шаг, который вы должны сделать, - понять, что любой структуре данных сопутствует контекст. Фамилия сама по себе не может являться самостоятельной сущностью, однако, есть единственный контекст, допускающий такую трактовку. Домашнее задание: найти, какой именно. Домашнее задание 2: написать, как следует использовать фамилию вне этого контекста.
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747548
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerБредятинаК счастью, все намного проще. Достаточно ответить на вопрос: не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью?)
Да, это очень важный вопрос. Один из тех, которые позволяют за пять секунд отличить практика от теоретика. Задавшись этим вопросом, теоретик пойдёт рассуждать о глобальной структуре нашего мира, а практик пойдёт к будущим пользователям и выяснит, часто ли они видят фамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова.
Исключено. Практик никогда не задаст такой вопрос. Ваша ирония уместна, конечно. Я опять забыл, что здесь собрались практики, не имеющие представления о теории БД)) И что самое печальное - о практике проектирования БД)) Они вместо элементарных вопросов, которые нужно задавать себе, а вовсе не пользователям (пользователям задают совсем другие вопросы), задают бесконечно один, еще более элементарный, вопрос: я правильно нормализовал данные? Мне удалось получить 3НФ?:)
Понятно, что это неразрешимая, видимо, проблема высшего образования. Но ведь и самообразование никто не отменял..
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747551
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621Весеннее обострение, Бредятина?

> не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью?

Я вижу, что вы старательно работали, прогресс очевиден. Но этого мало. Следующий шаг, который вы должны сделать, - понять, что любой структуре данных сопутствует контекст. Фамилия сама по себе не может являться самостоятельной сущностью, однако, есть единственный контекст, допускающий такую трактовку. Домашнее задание: найти, какой именно. Домашнее задание 2: написать, как следует использовать фамилию вне этого контекста.
У местных "теоретиков" весеннее обострение?))) "Фамилия сама по себе не может..." Приговор, основанный на низком уровне преподавателей наших "теоретиков". С этим, как я уже сказал в предыдущем сообщении, ничего не поделаешь...
...
Рейтинг: 0 / 0
Спроектировать БД Гостиницы
    #37747556
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovавторфамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова.
эх.... Буквы в фамилии "Сидоров" тоже обладают самостоятельным бытием.... так что.... уж нормализовать - так с музыкой!
Там еще пикселы, наверное... Но, то что подумали - уже хорошо:)
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Спроектировать БД Гостиницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]