|
|
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
Помогите спроектировать БД гостиницы. БД очень простенькая, но у меня есть проблемы с проектированием. Спроектируйте базу данных (БД) таким образом, чтобы она находилась не менее, чем в третьей нормальной форме. Спроектировать БД гостиницы. Известны данные о постояльцах (Ф,И,О, дата_рождения, N_гостиничного номера, дата_въезда и дата_выезда) и данные о номерном фонде(N_гостиничного номера, тип номера, вид из номера, стоимость номера в зависимости от сезона). В одном номере могут проживать несколько человек. Вот, что я напроектировал: http://s018.radikal.ru/i508/1204/d4/e1a1565d4b7bt.jpg На это мне сказали, что: 1. связь номера-клиенты многие-ко многим, это значит, что Вам нужна еще одна таблица. 2. Не нужно создавать отдельные таблицы по каждый сезон, тем более, что границы сезона не определены и неясно, как рассчитать стоимость проживания, если клиент заехал в один сезон, а выезжает, прожив какое-то время, в другой сезон. Подскажите с организацией связей, или какие таблицы создать, а дальше уж я сам постараюсь дотумкать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 22:53 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
Как-то коряво картинка выложилась.. То, что я напроектировал, отображено в прикрепленной картинке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2012, 22:57 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
Leone1930, Тебе точно надо 3 пацанская форма ? Иногда и денормализварванная нормально канает. Таблицы Вид и Тип Оставляем Номера: ИД, Тип, Вид Клиенты: ИД, ИмяИД, ФамилияИД, ОтчествоИД, ДатаРожденияИД (все интежер :) ) Имена: ИД, Имя Отчества: ИД, Имя Фамилии: ИД, Имя Даты: ИД, Дата Сезоны: ИД, Наименование Цены: ИД (Я так понимаю это Год :) ), СезонИД, Цена (Децимал или Мани юзать, но не флоат) НомерКлиент: ИДНомера, ИДКлиента, Дата, ЦенаСезонаИД ВОт примерно вот так. Хотя с ценобразованием у вас проблемы :) Но эта пацанская форма будет гибкой чтбы встретить изменения :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 12:21 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
SignOff, 3 форма точно нужна :) Спасибо, попробую создать указанные тобой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 15:19 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
Leone1930Подскажите с организацией связей, или какие таблицы создать, а дальше уж я сам постараюсь дотумкать. :) Ну давайте попробуем. Гостиница состоит из какого-то количества номеров. Каждый номер относится к одной из категорий - где категория по заданию включает тип и вид (а по-хорошему также наличие балкона и прочие подобные факторы). Номера в каждой категории считаются равноценными. Год состоит из какого-то количества сезонов. Каждый сезон характеризуется датами начала и окончания. Каждой категории для каждого сезона проставляются цены (по Вашему заданию - одна, а вообще должно быть понятие типа цены - поскольку их проставляется куча разных, например, стоимость проживания двух человек в двойном номере не равна стоимости проживания там одного человека и не равна удвоенной стоимости проживания одного человека). Для проживания в гостинице создаются заказы. Заказ включает в себя один или несколько номеров, каждый на свой интервал дат. К заказу привязываются один или несколько клиентов, каждый на некоторый интервал дат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 16:08 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
Leone1930Как-то коряво картинка выложилась.. То, что я напроектировал, отображено в прикрепленной картинке. У Вас огромное количество ошибок. Поясню на примере. Фамилия, конечно же, является самостоятельной сущностью, а вовсе не свойством сущности Клиент, как у Вас. И т.д. То есть, до третьей нормальной формы Вам еще как до луны)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 16:57 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
БредятинаФамилия, конечно же, является самостоятельной сущностью, Вмемориз (с) БредятинаТо есть, до третьей нормальной формы Вам еще как до луны)) Вы так говорите, будто высказанная Вами бредятина имеет хоть какое-то отношение к третьей нормальной форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:05 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
softwarerLeone1930Подскажите с организацией связей, или какие таблицы создать, а дальше уж я сам постараюсь дотумкать. :) Ну давайте попробуем. Гостиница состоит из какого-то количества номеров. Каждый номер относится к одной из категорий - где категория по заданию включает тип и вид (а по-хорошему также наличие балкона и прочие подобные факторы). Номера в каждой категории считаются равноценными. Год состоит из какого-то количества сезонов. Каждый сезон характеризуется датами начала и окончания. Каждой категории для каждого сезона проставляются цены (по Вашему заданию - одна, а вообще должно быть понятие типа цены - поскольку их проставляется куча разных, например, стоимость проживания двух человек в двойном номере не равна стоимости проживания там одного человека и не равна удвоенной стоимости проживания одного человека). Для проживания в гостинице создаются заказы. Заказ включает в себя один или несколько номеров, каждый на свой интервал дат. К заказу привязываются один или несколько клиентов, каждый на некоторый интервал дат. Извините - но вы несколько переиначили изначальную задачу. Напримре, периоды не играют роль. Заказы - о ни х речь не шла. Я думаю ваши усложнения не имеют к задаче место. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:09 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
SignOff, А что - фамилия может повторятся - значит ее в табличку и выносим - издержки 3 нормальной формы. Потому я и вынес имя фамилию и отчество :) А что - вот какой то тщедушный программистишко впаяет контрол который автозаполняет - не дергать же по дистинкту данные клиента... А так он дёрнет себе табличку с например с именами - и все расцвело цветами радуги - у юзверя ручки не полят вносить одни и тее значения, база не дрюкаеца на каждый пых. Да просто рай... :) Потом парограммистишко пойдет тим лидом - ведь прогресс то какой. И всем приятно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:14 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
SignOffИзвините - но вы несколько переиначили изначальную задачу. Я подчеркнул правильные решения намеченных в изначальной задаче вопрос. SignOffНапримре, периоды не играют роль. Это неправда. Если речь о сезонах, то - "стоимость номера в зависимости от сезона", если о постояльцах, то - "дата_въезда и дата_выезда". Цитата из постановки задачи. SignOffЗаказы - о ни х речь не шла. Видите ли, задача "спроектировать" немного отличается от задачи "тупо закодировать что дали". Прооектировщик должен подумать, как он собирается отразить в базе данных, например, следующую ситуацию: "Я приехал в гостиницу 01.06, взял номер 2+1 и поселился в нём с женой, ребёнком и младенцем. Заодно я снял номер 1+1 с 05.06, туда приехала пара наших подруг. 08.06 моя жена с детьми уехала, одна из подруг переселилась ко мне в номер, другая осталась в старом. 12.06 мы с подругой уехали, вторая подруга осталась до 14.06". Я предлагаю топикстартеру решить этот вопрос введением сущности "заказы". Конечно, могут быть и другие решения - готов их выслушать и обсудить. А в том, что касается "речь не шла" - у хорошего преподавателя это будет вопрос разницы между тройкой и пятёркой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:26 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
softwarerБредятинаФамилия, конечно же, является самостоятельной сущностью, Вмемориз (с) БредятинаТо есть, до третьей нормальной формы Вам еще как до луны)) Вы так говорите, будто высказанная Вами бредятина имеет хоть какое-то отношение к третьей нормальной форме. Если Вам непонятно, что у фамилии есть, например, происхождение, то, конечно, Вам еще рано заниматься нормализацией)) Нужно закончить среднюю школу, для начала)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:32 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
БредятинаЕсли Вам непонятно, что у фамилии есть, например, происхождение, Креативный критерий третьей нормальной формы. Дейт бы до такого никогда не додумался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:34 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
softwarer, Ну да ну да - я как то дату въезда и выезда прошляпил. Уж больно меня картинка ниже шокировала :) НОв этом и суть 3 пацанской формы - можно добавить и расширять БД не сильно коцая изначальное крео :) Как правило в отелях на сутки снимают номер. Номера окаывается могут иметь несколько мест - а жить 0..Н жильцов. Как считать стоимость если заехал осенью выехал зимой просто - дата заезда - как правило везде. Если так - то ты прав - надо Бронь делать табличку. Да но дальше можно конечно распиывать до бесконечности. Думаю в 2500 табличек уложимся. На собесах если меня спрашивают аля "постройте ЕРД а мы посмеемся" - я как правило не вылажу за рамки токо что нацарапано в задачке: нужно уважать и себя и того кто ее нацарапал в конце концов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:37 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
softwarer, Номаная форма - это максимизация жлобизма на байтах :) Это хорошо понятно когда БД были на магнитных лентах - это ж прикинь чтобы выбрать данные надо было мотать эту ленту тудым сюдым до отчаяния. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:44 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
softwarerБредятинаЕсли Вам непонятно, что у фамилии есть, например, происхождение, Креативный критерий третьей нормальной формы. Дейт бы до такого никогда не додумался. Разумеется, если опираться на "функциональные зависимости" и "ключи". К счастью, все намного проще. Достаточно ответить на вопрос: не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:45 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
Маленький наводящий вопрос. Вот например скажет вам начальник,что цена на номера на время проведения чемпионата европы по футболу в вашем городе совсем другая. Как вы это запрограммируете в вашей структуре? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:49 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
SignOffНоманая форма - это максимизация жлобизма на байтах :) Знаете, я как-то в форуме одной онлайн игрушки поспорил с оракловым админом из МТС-а и на спор уложил данные этой игрушки в таблицу со средним размером строки, кажется, 90 байт при том, что, как он утверждал, потребуется не менее 150. И это - не пользуясь битами и прочими способами значительно усложнить выборку информации. К чему это я.. нормальные формы тут не при чём :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 17:57 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
Ggg_oldМаленький наводящий вопрос. Вот например скажет вам начальник,что цена на номера на время проведения чемпионата европы по футболу в вашем городе совсем другая. Как вы это запрограммируете в вашей структуре? Не понял, к кому это вопрос. Если ко мне - то оно уже запрограммировано, в табличке "сезоны". Равно как и, например, сезон белых ночей в Питере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 18:05 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
БредятинаК счастью, все намного проще. Достаточно ответить на вопрос: не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью?) Да, это очень важный вопрос. Один из тех, которые позволяют за пять секунд отличить практика от теоретика. Задавшись этим вопросом, теоретик пойдёт рассуждать о глобальной структуре нашего мира, а практик пойдёт к будущим пользователям и выяснит, часто ли они видят фамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 18:08 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
авторфамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова. эх.... Буквы в фамилии "Сидоров" тоже обладают самостоятельным бытием.... так что.... уж нормализовать - так с музыкой! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 19:45 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
softwarer... фамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова. нет он перед бегом на лоб наклеивает тиа - "Постоялец Сидоров!!! Не путать с уборщиком Сидоровым!!!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 20:16 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
Весеннее обострение, Бредятина? > не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью? Я вижу, что вы старательно работали, прогресс очевиден. Но этого мало. Следующий шаг, который вы должны сделать, - понять, что любой структуре данных сопутствует контекст. Фамилия сама по себе не может являться самостоятельной сущностью, однако, есть единственный контекст, допускающий такую трактовку. Домашнее задание: найти, какой именно. Домашнее задание 2: написать, как следует использовать фамилию вне этого контекста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 20:18 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
softwarerБредятинаК счастью, все намного проще. Достаточно ответить на вопрос: не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью?) Да, это очень важный вопрос. Один из тех, которые позволяют за пять секунд отличить практика от теоретика. Задавшись этим вопросом, теоретик пойдёт рассуждать о глобальной структуре нашего мира, а практик пойдёт к будущим пользователям и выяснит, часто ли они видят фамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова. Исключено. Практик никогда не задаст такой вопрос. Ваша ирония уместна, конечно. Я опять забыл, что здесь собрались практики, не имеющие представления о теории БД)) И что самое печальное - о практике проектирования БД)) Они вместо элементарных вопросов, которые нужно задавать себе, а вовсе не пользователям (пользователям задают совсем другие вопросы), задают бесконечно один, еще более элементарный, вопрос: я правильно нормализовал данные? Мне удалось получить 3НФ?:) Понятно, что это неразрешимая, видимо, проблема высшего образования. Но ведь и самообразование никто не отменял.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 20:39 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
guest_20040621Весеннее обострение, Бредятина? > не является ли это свойство свойством какой-то другой сущности или самостоятельной сущностью? Я вижу, что вы старательно работали, прогресс очевиден. Но этого мало. Следующий шаг, который вы должны сделать, - понять, что любой структуре данных сопутствует контекст. Фамилия сама по себе не может являться самостоятельной сущностью, однако, есть единственный контекст, допускающий такую трактовку. Домашнее задание: найти, какой именно. Домашнее задание 2: написать, как следует использовать фамилию вне этого контекста. У местных "теоретиков" весеннее обострение?))) "Фамилия сама по себе не может..." Приговор, основанный на низком уровне преподавателей наших "теоретиков". С этим, как я уже сказал в предыдущем сообщении, ничего не поделаешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 20:45 |
|
||
|
Спроектировать БД Гостиницы
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakovавторфамилию "Сидоров", бегающую по гостинице отдельно от постояльца Сидорова. эх.... Буквы в фамилии "Сидоров" тоже обладают самостоятельным бытием.... так что.... уж нормализовать - так с музыкой! Там еще пикселы, наверное... Но, то что подумали - уже хорошо:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2012, 20:48 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37747269&tid=1541711]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
180ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 507ms |

| 0 / 0 |
