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

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

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

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



5,000 руб.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:08:49 48 чел. ★ 4.9 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 30 мин. [Показать отчёт]
Научился: Вспоминаю теорию проектирования БД. 
Сложности: Понять как будет выглядеть будущая БД. 
Комментарии: Все хорошо 
2 Таблицы клиентов и заказов 00:25:03 46 чел. ★ 4.9 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 30 мин. [Показать отчёт]
Научился: Обдумывать содержимое БД. 
Сложности: Находить и исправлять ошибки. 
Комментарии: В client добавила бы тип клиента ( заказчик, ребенок, инвалид) и доп. услуги, которые он будет использовать. В book тип бронируемого номера и статус оплаты. 
3 Таблицы комнат и дней 00:22:47 44 чел. ★ 4.9 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Посмотрела на существующие конвертеры dia to sql. Поняла, что дефолтное значение now() может быть только типа datetime, никакие date curdate() не проходят. 
Сложности: Переименовать сущности, скачать parsediasql и sed, создать bat файл, чтоб все работало. 
Комментарии: Что добавить и убрать посмотрю когда готовый проект будет. Пока будем считать что у нас 1 здание в одной стране, клиенту нужен только сон и он не за что не платит. Не поняла почему нельзя паспортные данные записывать, в отеле всегда паспорт спрашивают. Сжатое фото паспортов в базе хранить? Мой файл diaToSql.bat: parsediasql --file d3.dia --db mysql-innodb>1.sql sed s/latin1/utf8/ 1.sql>2.sql del 1.sql rename 2.sql 1.sql 
4 Создание базы в MS Access 00:26:28 40 чел. ★ 5 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 3 час. 00 мин. [Показать отчёт]
Научился: Переносить таблицы из dia в mssql. Враждебный access так и не освоила, верю что дизайнер там не плохой. :-) 
Сложности: Выполнить sql запрос в access. 
Комментарии: Не поняла поле day будет date или datetime? И еще текста - 4 вида. Какой из них длинный, а какой короткий? Чем varchar(255) отличается от tinytext? 
5 Установка сервера MySQL 00:08:39 21 чел. ★ 4.9 Open
6 SQL запросы для создания Базы 00:24:00 39 чел. ★ 5 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 30 мин. [Показать отчёт]
Научился: Что вместо tinyint можно написать bool. Что primary key можно объявить в самом поле. Вспомнила команду для добавления внешнего ключа. explain и show create table изучала очень давно, с HeidiSQL забыла за ненадобностью. 
Сложности: Ничего 
Комментарии: Все хорошо. 
7 Модель. Планирование. 00:04:53 39 чел. ★ 4.7 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 20 мин. [Показать отчёт]
Научился: Думать. 
Сложности: Сформулировать задачи бд и полностью их раскрыть. 
Комментарии: Регистрация нового клиента. Поиск и редактирование данных клиента. Добавление новой записи брони. Редактирование записи брони. Изменение статуса заявки. Добавление данных о комнатах. Редактирование данных о комнате. Распределение комнат по заявкам клиентов по дням. Выборка числа свободных комнат на определенную дату. Поиск другой информации о свободных комнатах. Изменение статуса в map или удаление записи. Создать календарь. Заполнить праздничные дни. Узнать рабочий день или выходной. 
8 Модель. Список задач. 00:23:02 37 чел. ★ 5 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Повторила SQL запросы. Правда только самые простые. Группировку, агрегатные функции, объединение и пересечение еще бы повторить. 
Сложности: Научиться пользоваться хранимыми процедурами. 
Комментарии: Идем дальше. 
9 Модель. SQL запросы для Client 00:20:17 36 чел. ★ 4.8 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Вспомнила, что вместо звездочки нужно писать все поля, но не помню что такое страшное может произойти, если оставить * - инъекция сработает или переполнение массива при изменении бд будет... 
Сложности: Понять как перемещать вверх/вниз, если поле со значением step+1/-1 вдруг окажется пустым. 
Комментарии: Идем дальше. 
10 Модель. SQL запросы для Room 00:12:04 36 чел. ★ 4.9 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Потренировалась с хранимыми процедурами. 
Сложности: Правильно реализовать перемещение вниз. 
Комментарии: Идем дальше. 
11 Модель. SQL запросы для Book и Map 00:26:03 36 чел. ★ 4.8 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Повторила составление запросов на выборку, удаление и изменение записей в бд. Узнала о модификаторе /G, правда не поняла где его будет удобно использовать, ну да ладно. :-) 
Сложности: Понять для чего нужен LEFT JOIN. В моей базе NULL запрещено использовать и не связанную запись так просто не добавить. 
Комментарии: Хороший вступительный урок по SQL получился, все просто и элегантно, не то что эти кораблики. http://www.sql-ex.ru/help/select13.php#db_1 Способа проектирования другого не знаю, разве что потереть бд, когда программа уже готова и попытаться ее восстановить по памяти... было такое. Внешние связи так в программе и не восстановила. Научиться бы еще по тех заданию понимать какие конкретно запросы будут нужны. Все равно все запросы с первого захода прописать не реально. SQL мне нравится, правда не всегда понимаю какую конкретно выборку требуется произвести и как не упустить какую-нибудь мелочь типа пол таблицы с null значениями.  
12 Модель. Имена методов. 00:26:12 35 чел. ★ 4.9 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Уметь правильно называть функции очень важно. 
Сложности: Писать и слушать одновременно. 
Комментарии: Обратила внимание на то, что в SQL запросах сохранен регистр, несмотря на то что MySql (в отличии от MS SQL) к регистру не чувствителен. 
13 Класс MySQL. Драйвер и конструктор. 00:28:30 35 чел. ★ 5 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Устанавливать MySQL коннектор, подключаться с помощью него к базе данных. 
Сложности: Разобраться с экзекьютами. 
Комментарии: Идем дальше. 
14 Класс MySQL. Получение таблицы. 00:23:55 34 чел. ★ 5 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Познала магию заполнения таблицы. Научилась использовать ExecuteNonQuery. 
Сложности: Разобраться с dataGrid. 
Комментарии: Все хорошо. 
15 Класс MySQL. Обработка ошибок. 00:13:22 34 чел. ★ 5 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 30 мин. [Показать отчёт]
Научился: Отлавливать ошибки обращения к БД и обрабатывать их. 
Сложности: Ничего. 
Комментарии: Все хорошо. 
16 Модульный тест 00:16:02 33 чел. ★ 5 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Разбирать примеры на сайте microsoft. 
Сложности: Понять что за account.Balance имеется ввиду. Подставила m_balance. Дошла до задания лимита времени, дальше сломалась. Пугающая строчка [DataSource( @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Projects\MyBank\TestData\AccountsTest.accdb", "AddIntegerHelperData" )] 
Комментарии: Модульные тесты уже разбирали в подарке от Деда Мороза. 
17 Отображение таблицы 00:06:18 33 чел. ★ 5 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 10 мин. [Показать отчёт]
Научился: Менять заголовки таблицы разными способами. 
Сложности: Ничего. 
Комментарии: Сама разобралась как загрузить данные в таблицу. Удалила лишний код. Добавила dataGridView1.RowHeadersVisible = false; 
18 Модель. Класс Клиента 00:24:57 32 чел. ★ 5 Done
  Отчёт отправил: 1232. Фомичева Наталья Решено за 1 час. 30 мин. [Показать отчёт]
Научился: Писать MySql инъекции. Ну и насчет /// было познавательно. 
Сложности: Подобрать значение клиента. Но у меня таки получилось удалить запись. :-) 
Комментарии: client = "\\',\u0022 инъекция :-)\u0022,\u0022\u0022,\u0022\u0022,\u0022\u0022);DELETE FROM map WHERE room_id = 1 AND book_id = 1;-- "; А так еще проще: mClient.SetInfo("\\');DELETE FROM map WHERE room_id = 1 AND book_id = 1;-- "); Вот только id выдает равным 0. Как бы это исправить. :-) 
19 Модель. Всё про Клиента 00:35:00 31 чел. ★ 5 $
20 Модель - Календарный год 00:29:48 28 чел. ★ 5 $
21 Модель - Календарные праздники 00:20:00 25 чел. ★ 5 $
22 Модель. Класс комнаты 00:16:39 25 чел. ★ 5 $
23 Модель. Удаление комнат. 00:14:41 24 чел. ★ 4.8 $
24 Модель. Тестирование комнат. 00:30:31 22 чел. ★ 5 $
25 Модель. Бронирование. 00:29:40 22 чел. ★ 5 $
26 Модель. Статусы заказов. 00:14:52 21 чел. ★ 5 $
27 Модель. Список заказов. 00:13:17 20 чел. ★ 5 $
28 Модель. Карта отеля 1 00:22:41 19 чел. ★ 5 $
29 Модель. Карта отеля 2 00:18:56 19 чел. ★ 4.9 $
30 Модель. Карта отеля 3 00:16:56 19 чел. ★ 4.9 $
31 Вид. Список форм. 00:12:00 9 чел. ★ 5 $
  Итого:   31 видеоурок общей продолжительностью 10 час. 16 мин. 7 чел. ★ 4.95  
  Финалисты:   Денис,   Иван,   Николай (nick27m),   Валентин,   Lik_Kirill,   Frank,   Rita .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Добавлять запросы, добавлять в таблицу, удалять из таблицы, восстанавливать нумерацию
Трудности: Все понятно
нет
Научился: Сверил поля таблиц Client и Book с составленными самостоятельно
Трудности: не было сложностей
-----------------