Курсы программирования с нуля

Формула программиста
основатель — Волосатов Евгений Витольдович

Базы данных - Управление отелем

Практическое знакомство с базами данных на примере создания программы «Hotel - управление комнатами и клиентами» - планирование и проектирование базы данных, проектирование интерфейса и создание полноценного программного продукта, с использованием базы данных MySQL и MS-SQL.



5,000 руб.


Для подписки на пакет необходимо авторизоваться.

Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:08:49 48 чел. ★ 4.9 Done
  Отчёт отправил: 8005. Александр Решено за 20 мин. [Показать отчёт]
Научился: Представлять , что требуется чтобы управлять отелем. 
Сложности: пытаться хотя бы мысленно не допустить повторяющихся данных, и увязать одну таблицу с другой 
Комментарии: продолжаем 
2 Таблицы клиентов и заказов 00:25:03 46 чел. ★ 4.9 Done
  Отчёт отправил: 8005. Александр Решено за 30 мин. [Показать отчёт]
Научился: Думать, наперёд. Исключать в голове наличие повторяющихся данных в таблицах 
Сложности: Придумать что-то, что действительно мы опустили :) 
Комментарии: Я понимаю ,что большинство основного функционала мы не добавили, чтобы не утяжелять проект. Пытался придумать что-то без чего бы точно "минимум" не существовал и не смог. Поэтому те записи , что я добавил, лишь как хотелось бы мне, что бы БД казалась полнее :) 
3 Таблицы комнат и дней 00:22:47 44 чел. ★ 4.9 Done
  Отчёт отправил: 8005. Александр Решено за 20 мин. [Показать отчёт]
Научился: снова думать наперёд 
Сложности: По правде говоря, я даже испугался, ведь я бы действительно скорее сделал Первичный ключ для комнаты ее номер. А оказывается сколько может изменится потом, и сколько потом переделывать из - за такой оплошности. И ведь всего не предусмотришь, к сожалению. 
Комментарии: НА данном этапе я не понимаю , почему в таблице Map мы сделали составной первичный ключ из трёх полей - book_id , room_id, calendar_day. Если к примеру мы занесли запись из заказа 1 с номером комнаты 1 и на 1 число, то таблица позволит нам внести и такую запись - номер заказа 2 номер комнаты 1 на 1 число и получится , что два человека попали на одно число в одну комнату. Если убрать book_id из ключа то вроде бы всё норм. Дальше погляжу! 
4 Создание базы в MS Access 00:26:28 40 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Сделал в MS SQL все таблицы. Научился создавать первичные и внешие ключи 
Сложности: ничего 
Комментарии: Создал все таблицы в субд MS SQL Server. Там можно создать диаграмму где все таблицы сами свяжутся нужными связями в зависимости от их ключей. У рабочего стола колоть некуда листок. Уверяю, что данное дело не забудится :) 
5 Установка сервера MySQL 00:08:39 21 чел. ★ 4.9 Open
6 SQL запросы для создания Базы 00:24:00 39 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 10 мин. [Показать отчёт]
Научился: Вроде бы сделал задание этого урока на прошлом уроке 
Сложности: ничего 
Комментарии: Ответь пож-та, я создал ранее таблицу с помощью management studio MS SQL Server. Я смогу продолжать далее проект если буду работать с этим инструментом, а не с MySQL и консолью ? 
7 Модель. Планирование. 00:04:53 39 чел. ★ 4.7 Done
  Отчёт отправил: 8005. Александр Решено за 15 мин. [Показать отчёт]
Научился: представлять возможные задачи, которые должна решать будущая программа 
Сложности: ничего 
Комментарии: Задачи 1.Добавлять клиента в бд 2.Добавлять комнату в бд 3.Добавлять заказы клиентов 4. Устанавливать выходные, праздничные дни в календаре. 5. Заселять клиентов в комнаты с помощью добавления записи в map 6.Удалять клиента 7. Удалять комнату 8. Удалять заказ 9.Удалять праздничные, выходные дни 10. ВЫписывать клиентов из отеля, посредством удаления записей из map\ 11. Изменять данные клиента 12. Изменять данные комнаты 13. Изменять расселение в map 
8 Модель. Список задач. 00:23:02 37 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 30 мин. [Показать отчёт]
Научился: опыт в написании запросов 
Сложности: ничего 
Комментарии: Сначала подумал, что как то тяжело всё будет писать. а вроде всё легко вышло. ИМожет что-то не то понаписал 
9 Модель. SQL запросы для Client 00:20:17 36 чел. ★ 4.8 Done
  Отчёт отправил: 8005. Александр Решено за 10 мин. [Показать отчёт]
Научился: добавил поиск по всем столбцам 
Сложности: в видеоуроке же тоже столбец ID интовый с автоинкрементом? Почему тогда проходит такой запрос ....OR ID = 'G' 
Комментарии: у меня выдало вот такую ошибку. Msg 245, Level 16, State 1, Line 11 Conversion failed when converting the varchar value 'P' to data type int. может кто знает как добавить проверку на возможность приведения типов ? 
10 Модель. SQL запросы для Room 00:12:04 36 чел. ★ 4.9 Done
  Отчёт отправил: 8005. Александр Решено за 10 мин. [Показать отчёт]
Научился: подвёл свои ранее написанные запросы под те, что в видеоуроки. а именно сортировку добавил в выводе всех комнат , а также заполнение поля Step значениями ID 
Сложности: ничего 
Комментарии: ничего 
11 Модель. SQL запросы для Book и Map 00:26:03 36 чел. ★ 4.8 Done
  Отчёт отправил: 8005. Александр Решено за 10 мин. [Показать отчёт]
Научился: практика в запросах 
Сложности: на этом уроке снова же. у Вас позволяет целочисленные поля приравнивать к 'pattern'. У меня ошибка. Может это разность в MySQL и MS SQl ? 
Комментарии: Не понятно всё таки как в видеоуроке добавилось значение в book с Client_ID равным NULL. Это поле является внешним ключем таблицы Client поля ID. и по идее ему не на что ссылаться, т.к. в данном поле значения NULL не может быть. Сами по себе запросы оказались очень простыми, надеюсь что в своих программах сильно тяжелее не пойдет. Язык SQL начал изучать недавно. Очень понравился. Делаю упражнения может sql-ex. Там я сейчас не могу решить задачи с уровнем сложности 3 и 4. Над 2-ым уровнем сложности приходится голову поломать. Боялся в некой степени что будет что-то такое навороченное 
12 Модель. Имена методов. 00:26:12 34 чел. ★ 4.9 Done
  Отчёт отправил: 8005. Александр Решено за 20 мин. [Показать отчёт]
Научился: придумывать адекватные названия 
Сложности: ничего 
Комментарии: продолжаем 
13 Класс MySQL. Драйвер и конструктор. 00:28:30 34 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Мало того, что научился подключать бд в Студии и делать простейший запрос, также пришлось научиться создаать нового пользователя в Management Studio, разрешать удаленные подключения и прочее 
Сложности: Самое сложное было создать пользователя с паролем, который может подключиться к данному серверу хотя бы в той же Management Studio 
Комментарии: Классный урок. Вот она -вот она рыба моей мечты. Понял, что знать нужно очень много чтобы координировать работу БД и основной программы, пока гуглил множество вопросов для решения возникающих проблем. 
14 Класс MySQL. Получение таблицы. 00:23:55 34 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 40 мин. [Показать отчёт]
Научился: узнал о функциях получающих таблицу 
Сложности: в MS SQL у класса SqlCommand нет функции LastInsertedID(). Печаль - беда.примерно почитал как люди берут ID последней вставки , подделаю когда пойму для чего нам нужен будет этот самый ID. 
Комментарии: Не понял для чего нужна функции addslashes. Что она экранировать будет? 
15 Класс MySQL. Обработка ошибок. 00:13:22 34 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 20 мин. [Показать отчёт]
Научился: узнал о таком удобном решении, на моменте отладки, да и не только отладки 
Сложности: ничего 
Комментарии: продолжаем 
16 Модульный тест 00:16:02 33 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 20 мин. [Показать отчёт]
Научился: вспомнил простейшие знания о UnitTests. 
Сложности: ничего 
Комментарии: Двигаемся дальше 
17 Отображение таблицы 00:06:18 33 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 10 мин. [Показать отчёт]
Научился: научился выводить таблицу в датаГридВью 
Сложности: ничего 
Комментарии: Вот она крутотень. Короткий урок, но такой хорошей вещи учит. Всё таки хочется теперь чтоб мы могли редактировать поля в бд всё сохранялось.  
18 Модель. Класс Клиента 00:24:57 32 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 30 мин. [Показать отчёт]
Научился: получаю опыт в связывании SQL и С# 
Сложности: всё таки понять, для чего нужна AddSlashes 
Комментарии: Люди добрый посмотрите , кто разбирается, Валерий ты в тот раз откликался на мой вопрос про AddSlashes. НА скрине видно, что я добавил информацию , содержащую " ' ". В получившийся таблицу у нас эти самые кавычки разумеется заменились на слэши. Так и должно быть? у всех же будет меняться запись в БД если пользователь будет пытаться ввести строку с кавычкой одинарной ? И для поясните , кто может каким образом эта функция защищает от инъекции. Т.е. как пользователь может что-то нарушить. Заранее спасибо 
19 Модель. Всё про Клиента 00:35:00 31 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Опыт в работе С БД 
Сложности: придумать нормальную реализацию метода UpdateClient :) 
Комментарии: Сделал по-своему метод UpdateClient. Реагирует на изменение ячейки в датагридвью. По ячейке определяет ID клиента и новое значение. Эти данные передает в метод и происходит изменение. Я понимаю, что на данном этапе никак не задействованы свойства полей. Потом элементарные проверки добавлю обязательно. 
20 Модель - Календарный год 00:29:48 27 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 1 час. 00 мин. [Показать отчёт]
Научился: практика в работе бд и с# 
Сложности: нет в Transact - SQL оператора IGNORE. Не доделывает майкрософт почему то такие мелочи. Пришлось сделать сначала запрос на содержание текущего дня в таблице и только потом его добавление 
Комментарии: продолжаем 
21 Модель - Календарные праздники 00:20:00 25 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 30 мин. [Показать отчёт]
Научился: опыт в написании запросов, юнит тестов 
Сложности: ничего 
Комментарии: Тесты - классная штука.  
22 Модель. Класс комнаты 00:16:39 25 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 50 мин. [Показать отчёт]
Научился: в этом уроке всё таки пришлось разобраться и найти аналог LastInsertedID() MySQL. Если мы хотим получить айдишник последней вставки нужно сделать такой - SELECT @@IDENTITY или такой - SELECT SCOPE_IDENTITY() запрос 
Сложности: придумать как можно сделать unit test на вставку данных попроще, ведь мы портачим инкремент в таблице Room тестовыми добавлениями комнат 
Комментарии: двигаемся дальше 
23 Модель. Удаление комнат. 00:14:41 24 чел. ★ 4.8 Done
  Отчёт отправил: 8005. Александр Решено за 30 мин. [Показать отчёт]
Научился: на этот раз точно запомнил как сбивать автоинкремент в MS SQL 
Сложности: ничего 
Комментарии: сделал совокупный тест, который добавляет комнату, выбирает в таблице комнат ID по номеру комнаты и Step по номеру комнаты. Сравнивает их на равенство. После Этого удаляет эту комнату и Воззвращает счетчик автоинкремента в нормальное положение 
24 Модель. Тестирование комнат. 00:30:31 22 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 30 мин. [Показать отчёт]
Научился: практика в написании тестов 
Сложности: ничего 
Комментарии: Добавил в тест проверку на удаление. На редактирование информации проверял также как и с клиентами. Вывод информации в таблице по кнопке, и возможность переписывать поля в таблице сразу с сохранением, кроме автоинкремента. Он кстати сам блокируется, что очень круто 
25 Модель. Бронирование. 00:29:40 22 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 1 час. 30 мин. [Показать отчёт]
Научился: практика в работе бд с С# 
Сложности: как то всё подзапуталось, с входными переменными у некоторых методов, вовзращаемыми значениями. Думаю всё встанет на свои места , когда появится интерфейс и станет понятно, каким образом мы будем добавлять новые записи, как будет происходить редактирование и что вообще можно будет редактировать 
Комментарии: продолжаем 
26 Модель. Статусы заказов. 00:14:52 21 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 20 мин. [Показать отчёт]
Научился: практика в написании запросов 
Сложности: ничего 
Комментарии: Нужно еще проверять даты, чтоб к примеру From_day не было позже Till_Day. Book_Date сюда же 
27 Модель. Список заказов. 00:13:17 20 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 20 мин. [Показать отчёт]
Научился: практика в написании запросов 
Сложности: ничего 
Комментарии: два этих метода были уже написаны имною на прошлых уроках. Переделал их с соединением таблицы Clinet и добавлением поля Client в результирующий набор 
28 Модель. Карта отеля 1 00:22:41 19 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 25 мин. [Показать отчёт]
Научился: практика в написании запросов 
Сложности: ничего 
Комментарии: продолжаем 
29 Модель. Карта отеля 2 00:18:56 19 чел. ★ 4.9 Done
  Отчёт отправил: 8005. Александр Решено за 30 мин. [Показать отчёт]
Научился: практика в написании запросов 
Сложности: ничего 
Комментарии: продолжаем 
30 Модель. Карта отеля 3 00:16:56 19 чел. ★ 4.9 Done
  Отчёт отправил: 8005. Александр Решено за 20 мин. [Показать отчёт]
Научился: практика в написании запросов 
Сложности: ничего 
Комментарии: для меня всё под конец модели запуталось. Нужен интерфейс управления, чтобы разобраться. но ничего скоро 
31 Вид. Список форм. 00:12:00 9 чел. ★ 5 Done
  Отчёт отправил: 8005. Александр Решено за 1 час. 00 мин. [Показать отчёт]
Научился: продумывать интерфейс. что потребуется для управления программой 
Сложности: таблица map. как наиболее легко добавить туда запись. Да и таблица новой резервации тоже. Знать ID клиента не очень удобно. Логичнее всего , конечно к примеру нажать на кллиенте и в выпадающем меню повесить на него новую бронь. Главное начать рисовать, всё дорисуется само потом 
Комментарии: Ждём след. уроков 
  Итого:   31 видеоурок общей продолжительностью 10 час. 16 мин. 7 чел. ★ 4.95  
  Финалисты:   Денис,   Иван,   Николай (nick27m),   Валентин,   Lik_Kirill,   Frank,   Rita .

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: некоторые sql запросы
Трудности: разобраться с командной строкой
нет
Научился: Основы проектирования бд
Трудности: Сдержаться от добавления лишних колонок
Замечаний нет