# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Мы начинаем создание базы данных для гостиницы. Твоя задача - самому подумать и создать описание сущностей проекта, для каждой выписать атрибуты. Отчёт отправил: 2773. Никита Выполнено за 10 мин. [Показать отчёт] Научился: Планирование БД Сложности: Ничего сложного Комментарии: Немного накидал сущности БД с атрибутами. |
|||||
2 | Таблицы клиентов и заказов |
1 тест |
|||
На этом уроке мы перечислим поля таблиц Client и Book. Каждое поле этих таблиц потребует подробных комментариев, почему так, как можно сделать иначе, какие могут быть ошибки и так далее. Отчёт отправил: 2773. Никита Выполнено за 15 мин. [Показать отчёт] Научился: Проектировать БД, выделять основные атрибуты в сущностях. Сложности: Ничего сложного. Комментарии: На мой взгляд, в таблице клиент указаны все основные атрибуты. Можно добавить пол клиента (это больше для статистики подойдет, например, кто чаще бронирует номера - мужчины или женщины), дату рождения клиента. Если же брать таблицу заявок (book), то конечно можно было бы ввести дополнительное поле - валюта, но я соглашусь с Евгением Витольдовичем, что потом появится масса проблем. Пожелания в графу info заносить, по возможности стараться их реализовать, чтобы клиент был доволен. Можно ввести дополнительное поле, которое будет характеризовать как клиент (тогда таблица клиент уже) будет добираться до отеля (сам лично или прислать машину). |
|||||
3 | Таблицы комнат и дней |
1 тест |
|||
На этом уроке мы перечислим поля трёх таблиц: Room, Calendar, Map. В конце урока распишем типы каждого поля нашей базы данных. Подумай и напиши, какие ещё поля можно добавить в эти таблицы. Отчёт отправил: 2773. Никита Выполнено за 30 мин. [Показать отчёт] Научился: Проектировать сущности БД. Сложности: Ничего сложного. Комментарии: Таблица Room: Я бы добавил бы еще тип комнаты (люкс, эконом и т.п.), количество комнат в номере. Таблица Calendar: Пока не совсем ясно, зачем нужна эта таблица, как она будет работать в связке с остальными таблицами, по ходу дела увижу. Может быть добавить количество дней в году или поле булевского типа, которое будет отвечать за год - високосный он или нет. Таблица Map: Опять же добавить поле info, куда можно писать дополнительную информацию (как примечание). А больше, что добавить, даже не знаю. |
|||||
4 | Создание базы в MS Access |
1 тест |
|||
На этом уроке мы создадим нашу базу данных в MS Access. Там же нарисуем схему базы данных и создадим связи между таблицами. Необходимо будет распечатать схему базы данных и прикрепить её на своём рабочем месте. Отчёт отправил: 2773. Никита Выполнено за 30 мин. [Показать отчёт] Научился: Пока ничего нового Сложности: Ничего сложного. Комментарии: Я давно делал эти таблицы в Access'е. Количество таблиц даже больше было) Вот этот и рисунок прикладываю. |
|||||
5 | Установка сервера MySQL |
2 теста |
|||
На этом уроке мы установим MySQL Community Server и программу HeidiSQL для подключения к нему. Отчёт отправил: 2773. Никита Выполнено за 10 мин. [Показать отчёт] Научился: Ничего нового. Сложности: Установить сервер. Комментарии: Я вчера весь день промучился с установкой этого сервера. Я несильно разбираюсь в этих серверах. У меня был установлен MSSQLServer, но когда я запускал командную строку, мне выдавало ошибку, что сервер уже используется в настоящее время. Тогда я решил установить еще один сервер от PHP. Так у меня вчера и не вышло. А сегодня решил заново все установить, старое удалил и о, чудо!, все заработало. Жаль, что я увидел это видео после того как я уже со всем разобрался. Но думаю данный урок будет полезен новичкам вроде меня) |
|||||
6 | SQL запросы для создания Базы |
1 тест |
|||
На этом уроке мы напишем SQL запросы для создания нашей базы данных отеля. Отчёт отправил: 2773. Никита Выполнено за 30 мин. [Показать отчёт] Научился: Создавать БД, используя консоль. Сложности: Ничего сложного, главное внимательно следить за синтаксисом. Комментарии: Отличный урок. Показаны и объяснены основные моменты создания базы данных и таблиц. Может кому интересно, почему при показе таблицы у поля типа int в скобках выводится число 11 (см. 1 рисунок). Это число означает ширину поля для отображения числа. Подсчитали, что 11 знакомест будет достаточно, чтобы поместилось любое число int'ового типа без обрезки (а занимает тип int в памяти 4 байта). Довольно интересный момент (см. 2 рисунок). Когда создавали таблицу Map, указываем для полей room_id, book_id и calendar_id, что они являются ключом, следовательно, нулевые значения в них не допускаются (столбец NULL на рисунке, все верно). Тогда получается, что эти поля должны инициироваться какими-то начальными ненулевыми значениями, но если посмотреть последний столбец на рисунке (столбец Default), то ничего такого не увидим. Довольно странно. И еще хочу добавить, я помню, когда Евгений Витольдович проводил вебинары по видеокурсу "Книжка оценок". В нем очень подробно рассказывались SQL-команды. К примеру, как добавить в таблицу данные, потом как их отсортировать. Непросто название команды, а еще были продемонстрированы модификации этих команд. Очень полезный урок) |
|||||
7 | Модель. Планирование. |
|
|||
На этом уроке самостоятельное задание - сформулировать все задачи, которые решает программа. Это будет своеобразное проектирование бизнес-модели проекта. Подсказка: смотрим на схему базы данных, на каждую таблицу по отдельности, и задаём себе несколько раз вопросы: что это? для чего? что можно с этим сделать? как это можно обработать? Отчёт отправил: 2773. Никита Выполнено за 20 мин. [Показать отчёт] Научился: Планировать задачи, решаемые в БД. Сложности: Ничего сложного. Комментарии: Задачи, решаемые БД: 1) Регистрация клиентов 2) Изменение данных клиента 3) Удаление клиента 4) Получение информации обо всех клиентов 5) Добавление новой комнаты 6) Редактирование статуса комнаты 7) Получение информации обо всех комнатах 8) Добавление данных в календарь 9) Установка праздничных, выходных и рабочих дней 10) Редактирование данных в календаре 11) Получение информации на текущий год 12) Создание новой записи о регистрации 13) Изменение записи (статуса) о регистрации 14) Получение информации обо всех записях регистрации 15) Добавление новой записи в таблицу Map (map - распределение комнат по заявкам) 16) Редактирование записи в таблице Map 17) Удаление записи из таблицы Map 18) Получение всех записей таблицы Map Может добавить еще какие-нибудь отдельные функции. Например, поиск клиентов по заданному параметру (по фамилии, к примеру). |
|||||
8 | Модель. Список задач. |
|
|||
На этом уроке мы составим список задач. Для каждой задачи нужно будет написать SQL запрос (или несколько), который решает поставленную задачу. Запросы нужно писать в таком виде, в котором они сразу могут быть выполнены в SQL-мониторе. Каждый запрос необходимо проверить на работоспособность. Отчёт отправил: 2773. Никита Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Писать SQL-запросы самостоятельно без помощи визуального редактора. Сложности: Ничего сложного, базовые простенькие запросы я вполне могу написать. Комментарии: Все хорошо : ) |
|||||
9 | Модель. SQL запросы для Client |
|
|||
На этом уроке мы составим SQL запросы для решения задач с таблицами Client и Calendar. По аналогии создай SQL запросы для остальных задач. Отчёт отправил: 2773. Никита Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Писать ручками запросы SQL. Сложности: Ничего сложного. Комментарии: Отличный урок, все объяснено. Даже хорошо, что возникают ошибки и что очень замечательно Евгений Витольдович объясняет эти ошибки и показывает как их исправить. |
|||||
10 | Модель. SQL запросы для Room |
1 тест |
|||
На этом уроке мы составим SQL запросы для решения задач с таблицей Room. По аналогии создай SQL запросы для остальных задач. Отчёт отправил: 2773. Никита Выполнено за 40 мин. [Показать отчёт] Научился: Еще раз попрактиковался в написании SQL-запросов. Сложности: Ничего сложного. Комментарии: Отличный видеоурок. Все запросы работают, все понятно. |
|||||
11 | Модель. SQL запросы для Book и Map |
|
|||
На этом уроке мы составим SQL запросы для всех остальных задач, для таблиц Book и Map. В отчёте напиши мини-отзыв о созданных запросах. Отчёт отправил: 2773. Никита Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Закрепил свои знания по написанию SQL-запросов. Сложности: Ничего сложного. Комментарии: Я до этого работал в SQl-Server'e MySQLServer и мне приходилось писать запросы к базе данным. Но я это делал через создание визуальный редактор: просто перетаскивал нужные мне таблицы в поле программы, ставил галочки напротив нужных мне пунктов (например, в поле "Фильтр" указывал для фамилии "Иванов"), а потом выбирал вкладку Sql и оттуда брал готовый запрос и вставлял в SQL-функцию. То есть я делал все визуально, примерно понимал что откуда. А когда делаешь все сам, то есть прописываешь ручками лучше идет понимание. Но снова нужна хоть какая-то элементарная база знаний SQL-запросов. В общем, мне очень понравилось в такой манере писать SQL-запросы. И к тому же, лично я считаю это большим плюсом, что мы заранее определили список действий, которые должна выполнять наша база данных. Так намного проще, а не потом, во время написания кода программы, сидишь и думаешь какой же тебе запрос нужно сделать. К тому же мы выполняли каждый запрос в консольном режиме (я первый раз поработал с консолью для создания БД) и видели результат и при необходимости исправляли наш запрос. В общем, я доволен!) |
|||||
12 | Модель. Имена методов. |
1 тест |
|||
На этом уроке мы пройдёмся ещё раз по списку составленных задач и дадим названия классам и методам, которые эти задачи будут выполнять. Отчёт отправил: 2773. Никита Выполнено за 30 мин. [Показать отчёт] Научился: Поразмыслил над именами методов для SQL-запросов. Сложности: Ничего сложного. Комментарии: Жаль конечно, что убрали запрос для перемещения комнаты по списку вверх-вниз, хотя кто знает, может потом все-таки добавим. |
|||||
13 | Класс MySQL. Драйвер и конструктор. |
1 тест |
|||
На этом уроке мы наконец-таки создадим проект. Установим Mysql DotNet Connector и начнём создавать класс MySQL для подключения к базе данных. Мы напишем конструктор и три метода. Отчёт отправил: 2773. Никита Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Прописывать вручную строку для подключения к БД. Сложности: Ничего сложного. Комментарии: Отличный урок, все понятно. По поводу нижнего регистра кодировки utf8, я не знаю почему в верхнем регистре не работает. Но я нашел заметку, хочу процитировать: "Note! Use lower case value utf8 and not upper case UTF8 as this will fail.". Тут говорится, что нужно писать кодировку в нижнем регистре, иначе будет ошибка. Что у нас и было в первом случае. У меня все заработало! Я очень рад! |
|||||
14 | Класс MySQL. Получение таблицы. |
1 тест |
|||
На этом уроке мы создадим ещё несколько полезных методов в классе MySQL для считывания, изменения и добавления записей. Отчёт отправил: 2773. Никита Выполнено за 40 мин. [Показать отчёт] Научился: Создавать SQL-запросы для добавления/удаления и изменения записей в БД. Сложности: Ничего сложного. Комментарии: Отличный урок. Все получилось добавить с первого раза. Ведь у нас уже были заготовлены заранее SQL-команды, просто копируем их и вставляем в программу. |
|||||
15 | Класс MySQL. Обработка ошибок. |
|
|||
На этом уроке мы создадим функцию SqlError() для удобной обработки ошибок во время тестирования. Отчёт отправил: 2773. Никита Выполнено за 40 мин. [Показать отчёт] Научился: Делать БД более устойчивой к ошибкам. Сложности: Ничего сложного. Комментарии: Очень хорошее нововведение, Евгений Витольдович, использовать метод для обработки возможных ситуаций при работе с базой данных. Я помню еще в видеокурсе "Книжка оценок" Вы показывали этот прием. Здорово получается. |
|||||
16 | Модульный тест |
1 тест |
|||
На этом уроке мы создадим модульный тест (UnitTest) для тестирования класса MySQL, который мы создали ранее. В уроке приводится только знакомство, без полного покрытия тестами нашего проекта, но в будущем мы к ним ещё вернёмся. В комментариях необходимо написать, использовал ли ты ранее модульные тесты. Полезная ссылка: https://msdn.microsoft.com/ru-ru/library/hh694602.aspx Отчёт отправил: 2773. Никита Выполнено за 40 мин. [Показать отчёт] Научился: Создавать модульные тесты. Сложности: Не очень понял как работать с исключениями. Комментарии: Начальные знания по работе с модульными тестами получил. Не понял как работать с исключениями. Я примерно представляю как работать с этими тестами, но лучше было бы на конкретном примере с нашей базой данных. Я пробовал сам создавать методы для проверки работоспособности нашей БД, что-то получилось (результат можно видеть на рисунке). |
|||||
17 | Отображение таблицы |
|
|||
На этом уроке мы визуализируем созданное, через отображение в компоненте DataGridView. Заголовки столбцов можно поменять двумя разными способами. 1. sql.Select("SELECT id as Nr, client as Surname FROM Client"); 2. dataGridView1.Columns[0].HeaderText = "№"; Отчёт отправил: 2773. Никита Выполнено за 40 мин. [Показать отчёт] Научился: Ничего нового для меня не было, так как визуальное отображение я сделал еще 5 уроков назад - в самом начале создания программы, когда писали запросы. Сложности: Ничего сложного. Комментарии: Я немного поизголялся. У меня выводится список всех таблиц в базе данных. Потом я могу выбрать любую таблицу и просмотреть ее содержимое, а при необходимости добавить запись. Пока последний пункт не стал реализовывать, так как у каждой таблицы свои поля (количество полей разное и тип данных и т.п.), долго сидеть придется. Да и в этом уроке этого делать не надо) В общем, результаты моих "изголений" :) можно увидеть на рисунках) |
|||||
18 | Модель. Класс Клиента |
1 тест |
|||
На этом уроке мы наконец-таки начнём создавать первый класс Бизнес Модели Отеля. Это класс Model.Client, для подготовки которого потребуется ещё некоторые вспомогательные работы. Отчёт отправил: 2773. Никита Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Реализовывать подготовленные методы. Писать SQL-команды. Сложности: Ничего сложного. Все просто. Комментарии: На первом скриншоте показана БД "Клиенты" до нажатия кнопки "Добавить нового клиента", а на втором скриншоте - после нажатия кнопки. Все успешно добавляется. Наконец-то мы начали реализовать в программе наши SQL-команды, ура!) |
|||||
19 | Модель. Всё про Клиента |
1 тест |
|||
На этом уроке мы допишем класс Client. Реализуем четыре метода и слегка потестируем их. Написать свои впечатления о созданном классе модели. Отчёт отправил: 2773. Никита Выполнено за 50 мин. [Показать отчёт] Научился: Реализовывать запросы через методы для таблицы Клиент. Сложности: Ничего сложного. Комментарии: Очень понравился урок. Очень хорошо, что мы заранее написали все эти SQL-запросы, а теперь просто их вставляем в программу, немного корректируем и у нас уже все работает. Очень хорошая идея с XML-комментированием методов. Вы как-то, Евгений Витольдович, показывали на вебинаре эти фишки, когда делаем пометки к методам. Но вот по поводу returns чего-то у меня пока не получилось найти, где IntelliSense пишет, что возвращается. Может кто знает и подскажет? Буду премного благодарен. А вообще, потом как-нибудь нечаянно наткнусь) Такое часто случается. Что-то не знаешь как сделать, а потом "оп" и где-нибудь встретишь эту реализацию. |
|||||
20 | Модель - Календарный год |
|
|||
На этом уроке мы начнём создавать модель календаря. Поработаем с запросами, напишем метод InsertDays(int year). Создадим тест для этого метода и немного доработаем класс тестов. Отчёт отправил: 2773. Никита Выполнено за 50 мин. [Показать отчёт] Научился: Продолжаем создавать методы для таблиц и создаем тесты) Сложности: Ничего сложного. Все понятно) Комментарии: Я помог своему брату установить язык C#, показал ему основные компоненты ( я про Windows Forms), основные действия объяснил. Теперь он сидит играется. Очень хорошо, что создали тест. Еще раз попрактиковался в создании тестов, теперь лучше понимаю, как их вообще создавать, как тестировать написанные методы. Очень хорошая идея Ильшата - это создание пользовательского конструктора, где мы могли бы прописать наше подключение к серверу. Отличный урок. К тому же уроки по 20-25 минут смотрятся очень легко и всегда имеют логическое завершение. На первом рисунке представлены тесты, что все они успешно пройдены. На втором рисунке представлены результаты запроса - количество записей в БД на определенный год, в данном случае на 1924 год. По мере прохождения последнего теста (он длится продолжительное время, так как добавляются записи в БД), я делал запросы к БД. Можно увидеть, что количество записей постепенно увеличивается, а последний результат выдал 0 записей - это сработал SQL-запрос на удаление всех записей на 1924 год. |
|||||
21 | Модель - Календарные праздники |
1 тест |
|||
На этом уроке мы добавим в модель календаря методы для создания дней, пометки их праздничными/обычными. Также добавим ещё несколько тестов, чтобы они представляли из себя логически завершённую последовательность для тестирования календаря. Отчёт отправил: 2773. Никита Выполнено за 40 мин. [Показать отчёт] Научился: Создавать тесты для проверки работоспособности программы. Сложности: Ничего сложного. Все отлично) Комментарии: Все-таки создание тестов это отличный вариант для проверки правильности работы программы. Мы с кнопками работать умеем, а с тестами не очень (я про себя). Очень интересный урок. Ура! Мы закончили с моделью "Календарь", переходим к следующей) |
|||||
22 | Модель. Класс комнаты |
|
|||
На этом уроке мы создадим модель на комнат, класс Room. Чтобы сделать это быстро - мы воспользуемся заготовками из класса Client.cs. В этом уроке мы не пишем тестов, поэтому класс создали в рекордно короткое время, 15 мин. Однако, создание тестов никто не отменял - это самостоятельное задание. Отчёт отправил: 2773. Никита Выполнено за 40 мин. [Показать отчёт] Научился: Работать с моделью комнаты) Сложности: Ничего сложного. Комментарии: Отличный видеоурок. Так как заготовки у нас есть и тем более мы ранее писали класс "Клиент", то можно часть методов взять оттуда и немного модифицировать. |
|||||
23 | Модель. Удаление комнат. |
|
|||
На этом уроке мы добавим метод для удаления комнат. Исправим логическую ошибку метода Update в классах Room и Client. Подготовим функцию для теста созданного класса. Рекомендую эти тесты создать самостоятельно. Отчёт отправил: 2773. Никита Выполнено за 10 мин. [Показать отчёт] Научился: Доработал класс Room. Сложности: Ничего сложного. Комментарии: Все отлично!) |
|||||
24 | Модель. Тестирование комнат. |
|
|||
На этом уроке мы создадим TestRoom() для класса Room. Это будет одна функция, в которой мы последовательно будем вызывать все методы класса Room и проверять, на сколько правильно и корректно они отработали. В конце урока мы выполним тест пошагово. Отчёт отправил: 2773. Никита Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Создавать модульные тесты. Сложности: Сделать, чтобы все тесты корректно отрабатывали. Комментарии: Все нормально. У меня получилось разбить метод для тестирования таблицы "Room" на отдельные составляющие - методы. И все благополучно работает. |
|||||
25 | Модель. Бронирование. |
|
|||
На этом уроке мы посмотрим картинки красивых комнат. И начнём создавать модуль бронирования Book. Создадим конструктор, методы InsertBook(), SelectBook() и UpdateBook(). В конце поговорим о том, что нужно отдыхать ДО того, как устанешь. Отчёт отправил: 2773. Никита Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Создавать класс Book (регистрация клиентов). Реализовывать в нем SQL-запросы. Сложности: Ничего сложного. Комментарии: Я ошибся в названии полей и долго не мог понять, почему не работает метод SelectBook(long bookId), потом разобрался наконец-то. И еще при вызове этого метода нужно в запросе указать в списке возвращаемых полей поле Id, то есть "SELECT id, client_id, book_date, from_day, till_day, adults, childs, status, info FROM Book WHERE id = 'число';". А то у меня выдавало ошибку при тестировании этого запроса. Писало, что такого поля (id) в таблице нет. Я иногда медитирую. Сейчас пока медитировать не буду, еще не устал) |
|||||
26 | Модель. Статусы заказов. |
|
|||
На этом уроке мы поговорим о статусах заказа. Создадим методы изменения статуса и дней заезда/выезда. Отчёт отправил: 2773. Никита Выполнено за 50 мин. [Показать отчёт] Научился: Еще ближе на 1 шаг продвинулся по созданию проекта. Сложности: Ничего сложного. Комментарии: Я добавил перечисление "Статусы", не знаю пригодится или нет. Но решил так поступить, потом, если что уберу. |
|||||
27 | Модель. Список заказов. |
1 тест |
|||
На этом уроке мы допишем два последних метода в класс Book. Методы для получения списка заказов по фильтру и без. В конце урока выведем результаты в грид, чтобы убедиться, что код работает. Отчёт отправил: 2773. Никита Выполнено за 20 мин. [Показать отчёт] Научился: Дополнили таблицу "Book" SQL-запросами и протестировали их. Сложности: Ничего сложного, все понятно. Комментарии: Отличный урок. |
|||||
28 | Модель. Карта отеля 1 |
1 тест |
|||
На этом уроке мы начнём создавать модель управления комнатами. Пока мы создадим только конструктор, поля и метод void SelectMap (long room_id, long book_id, DateTime calendar_day) Отчёт отправил: 2773. Никита Выполнено за 40 мин. [Показать отчёт] Научился: Продолжаем дальше реализовать SQL-запросы в классах) Сложности: Ничего сложного. Комментарии: Отличный урок) Я добавил в класс MySQL метод DateToString и изменил в остальных классах методы, где мы конвертировали поле в дату, теперь вызывается функция из класса) |
|||||
29 | Модель. Карта отеля 2 |
|
|||
На этом уроке мы создадим методы InsertMap() и InsertMapNone(). Также добавим в класс MySQL метод DateToString() и пробежимся по всему проекту, убирая yyyy-MM-dd. Отчёт отправил: 2773. Никита Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Дорабатывать классы. Сложности: Ничего сложного. Комментарии: Метод DateToString() я добавил в класс MySQL еще в тот раз и переделал вызов функций. Так что на этот раз пришлось только дописать метод SelectMap. |
|||||
30 | Модель. Карта отеля 3 |
|
|||
На этом уроке мы создадим оставшиеся методы класса Map: SelectMap(), UpdateMap() и DeleteMap(). Пока без тестирования. Отчёт отправил: 2773. Никита Выполнено за 30 мин. [Показать отчёт] Научился: Ничего нового не было, просто доделали методы в классе Map)) Сложности: Все просто и легко. Все понятно. Комментарии: Отлично, мы наконец-то завершили работу с SQL-запросами, с нашими моделями. Очень хорошо получилось, потому что было очень наглядно и все подробно объяснено, последовательно и заранее продумано. Теперь перейдем к созданию визуальной части приложения. Ура) |
|||||
31 | Вид. Список форм. |
1 тест |
|||
На этом уроке мы приступаем к следующему этапу создания программы - Представления (вид). Наша задача - составить список форм, которые будут в проекте, и для каждой формы нарисовать, как она будет выглядеть. | |||||
Итого: 31 видеоурок |
10 час. 16 мин. 17 тестов |
23 чел. | |||
Финалисты: Денис, Иван, Николай Миролюбов, Валентин, Кирилл Шмойлов, Frank, Rita, Ludmila, Станислав, Сергей Зулкарнаев, kalobyte, Tekashnik, egresr, Новопашин Владимир, Роман, Yefim, Василий, Ivan, vip, Илья, Михаил, Vdonsk, Егор Ульянов . |