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

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

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

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



5,000 руб.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:08:49 48 чел. ★ 4.9 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: проектировать решение 
Сложности: продумать сущности  
Комментарии: норм 
2 Таблицы клиентов и заказов 00:25:03 46 чел. ★ 4.9 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: более глубже продумывать задачу 
Сложности: думать )) 
Комментарии: норм 
3 Таблицы комнат и дней 00:22:47 44 чел. ★ 4.9 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: Думать )) 
Сложности: Думать )) 
Комментарии: круто у нас есть скелет программы  
4 Создание базы в MS Access 00:26:28 40 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: Рисовать схемы в MySQL Workbench  
Сложности: просто 
Комментарии: уже скоро начнётся интересное  
5 Установка сервера MySQL 00:08:39 21 чел. ★ 4.9 Demo
6 SQL запросы для создания Базы 00:24:00 39 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: писать sql запросы  
Сложности: Все просто 
Комментарии: Надоела мне консоль, использую MySQL Workbench  
7 Модель. Планирование. 00:04:53 39 чел. ★ 4.7 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: Писать задачи которые требуется решить  
Сложности: придумать запросы  
Комментарии: 1. Добавить (редактировать, удалить)пользователя. 2. Добавить (редактировать, удалить)Комнату. 3. Добавить (редактировать, удалить)Заявку. 4. Добавление дней в календарь. 5. заполнение карты по запросу заявки. 6. Вывод "загруженности" отеля 7. в каких комнатах был клиент. 8. занятость комнаты. и тд.  
8 Модель. Список задач. 00:23:02 37 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Создавать запросы sql DDL 
Сложности: Писать запросы. 
Комментарии: Круто 
9 Модель. SQL запросы для Client 00:20:17 36 чел. ★ 4.8 Done
  Отчёт отправил: 5219. Nromik Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Писать запросы на добавление и изменение данных. И что нужно внимательно писать запросы или можно все поламать 
Сложности: Запросы 
Комментарии: полезный пример ламания базы. 
10 Модель. SQL запросы для Room 00:12:04 36 чел. ★ 4.9 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: Писать запросы на обновление данных 
Сложности: .Перемещение комнаты по списку вниз/верхх. 
Комментарии: ктуто 
11 Модель. SQL запросы для Book и Map 00:26:03 36 чел. ★ 4.8 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: Писать вложенные запросы  
Сложности: просто 
Комментарии: Классно  
12 Модель. Имена методов. 00:26:12 34 чел. ★ 4.9 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: придумывать имена методам 
Сложности: придумывать имена методам  
Комментарии: Если в модели MVC три слоя то можно ли разложить их по разных слоях с помощью namespace hotel_DB.Model namespace hotel_DB.Views namespace hotel_DB.Controler тогда будет красивее в плане Model.Client Model.Room ??? или это решение не подходит к да ной задаче ? 
13 Класс MySQL. Драйвер и конструктор. 00:28:30 34 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 1 час. 00 мин. [Показать отчёт]
Научился: подключатся к базе даных 
Сложности: подключение к базе даных 
Комментарии: Решил создать нового пользователя для базы. Как по мне то боле безопасней использовать MySqlConnectionStringBuilder для построения строки запроса  
14 Класс MySQL. Получение таблицы. 00:23:55 34 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Научился извлекать данные из MySQL 
Сложности: Прoтeстировать рaбoту 
Комментарии: круто 
15 Класс MySQL. Обработка ошибок. 00:13:22 34 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Использовать макросы 
Сложности: просто 
Комментарии: SqlError() для тестирования крутая функция, как дополнение к ней можно использовать макросы #if DEBUG #endif и в зависимости от выбранного режима будет добавляться или нет. На скриншоте привожу пример. 
16 Модульный тест 00:16:02 33 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 30 мин. [Показать отчёт]
Научился: Использовать модульные тесты 
Сложности: тестировать 
Комментарии: Крутая штука нужно будет использовать чаще 
17 Отображение таблицы 00:06:18 33 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 20 мин. [Показать отчёт]
Научился: Использовать DataGridView. 
Сложности: -- 
Комментарии: По рекомендации поэкспериментировал и поставил DevExpress интересно что два грита "связные " и изменяя в одном идут изменения в другом. Наверное это происходит по той причине что они ссылаются на один объект, а именно DataTable client. Один минус если в грид DevExpress загружаешь другой DataTable то он не чистил название колонок и не может загрузить новую информацию. Наверное нужно запускать какой то метод перед вставкой новых данных. Желаю всем по больше экспериментов. 
18 Модель. Класс Клиента 00:24:57 32 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 45 мин. [Показать отчёт]
Научился: чему то) 
Сложности: ловить ошибки  
Комментарии: По поводу свойств и методов которые просто делают SET & GET как от них избавится. Да, Я знаю что нарушаю принцип ООП . Пример на классе Client 1. Делаем поле в классе public string Phone (с заглавной буквы) ; и получаю доступ напрямую (при этом программа работает быстрее) и код не захламляется бесполезными SET & GET . 2. И вдруг случилось нечто невообразимое нужно делать проверку на поле Phone . 3. Решаем задачу просто. 4.1. public string Phone -> private string phone или private string _phone (с помощью рефакторинга переименовываем поле в классе) 4.2. И создаем свойство public string Phone { get { return this._phone; } set { if ( CallPhone(value) ) this._phone = value; else //........ } } все работает ;-) 
19 Модель. Всё про Клиента 00:35:00 31 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 40 мин. [Показать отчёт]
Научился: Искать и обновлять данные в таблице Client 
Сложности: null 
Комментарии: Как по мне поле MySql sql - нужно сделать публичное и статическое и DataTable SelectClients() & DataTable SelectClients(string find) - тоже статические они ни как не затрагивают поля объекта клиента. 
20 Модель - Календарный год 00:29:48 27 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 1 час. 00 мин. [Показать отчёт]
Научился: Использовать запрос INSERT IGNORE. И дебажыть тесты ) 
Сложности: null 
Комментарии: Метод класса Calendar InsertDays сделал статическим 
21 Модель - Календарные праздники 00:20:00 25 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 1 час. 00 мин. [Показать отчёт]
Научился: писать методы AddHoliday (DateTime day) DelHoliday (DateTime day) UpdHoliday (DateTime day, bool holiday)  
Сложности: null 
Комментарии: методы AddHoliday (DateTime day) DelHoliday (DateTime day) UpdHoliday (DateTime day, bool holiday) сделал статические  
22 Модель. Класс комнаты 00:16:39 25 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 1 час. 00 мин. [Показать отчёт]
Научился: писать методы, DataTable SelectRooms(), void InsertRoom(), bool SelectRoom(long room_id), bool UpdateRoom(long room_id) 
Сложности: null 
Комментарии: Решил модифицировать класс MySql и добавил метод public string AddSlashes(object obj) { return AddSlashes(obj.ToString()); } 
23 Модель. Удаление комнат. 00:14:41 24 чел. ★ 4.8 Done
  Отчёт отправил: 5219. Nromik Решено за 10 мин. [Показать отчёт]
Научился: Модель. Удаление комнат. 
Сложности: null 
Комментарии: null 
24 Модель. Тестирование комнат. 00:30:31 22 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 10 мин. [Показать отчёт]
Научился: Модель. Тестирование комнат. 
Сложности: null 
Комментарии: null 
25 Модель. Бронирование. 00:29:40 22 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 10 мин. [Показать отчёт]
Научился: Модель. Бронирование. 
Сложности: null 
Комментарии: null 
26 Модель. Статусы заказов. 00:14:52 21 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 10 мин. [Показать отчёт]
Научился: Модель. Статусы заказов. 
Сложности: null 
Комментарии: null 
27 Модель. Список заказов. 00:13:17 20 чел. ★ 5 Done
  Отчёт отправил: 5219. Nromik Решено за 10 мин. [Показать отчёт]
Научился: Модель. Список заказов. 
Сложности: null 
Комментарии: null 
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#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Проверке методов через тестирование
Трудности: соблюсти синтаксис
нет
Научился: Анализировать поля и таблицы базы данных
Трудности: ничего
Для таблицы Room можно было бы добавить поле view - вид (комнаты с хорошим видом дороже :)