# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Мы начинаем создание базы данных для гостиницы. Твоя задача - самому подумать и создать описание сущностей проекта, для каждой выписать атрибуты. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 30 мин. [Показать отчёт] Научился: Вспоминаю теорию проектирования БД. Сложности: Понять как будет выглядеть будущая БД. Комментарии: Все хорошо |
|||||
2 | Таблицы клиентов и заказов |
1 тест |
|||
На этом уроке мы перечислим поля таблиц Client и Book. Каждое поле этих таблиц потребует подробных комментариев, почему так, как можно сделать иначе, какие могут быть ошибки и так далее. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 30 мин. [Показать отчёт] Научился: Обдумывать содержимое БД. Сложности: Находить и исправлять ошибки. Комментарии: В client добавила бы тип клиента ( заказчик, ребенок, инвалид) и доп. услуги, которые он будет использовать. В book тип бронируемого номера и статус оплаты. |
|||||
3 | Таблицы комнат и дней |
1 тест |
|||
На этом уроке мы перечислим поля трёх таблиц: Room, Calendar, Map. В конце урока распишем типы каждого поля нашей базы данных. Подумай и напиши, какие ещё поля можно добавить в эти таблицы. Отчёт отправил: 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 |
1 тест |
|||
На этом уроке мы создадим нашу базу данных в MS Access. Там же нарисуем схему базы данных и создадим связи между таблицами. Необходимо будет распечатать схему базы данных и прикрепить её на своём рабочем месте. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 3 час. 00 мин. [Показать отчёт] Научился: Переносить таблицы из dia в mssql. Враждебный access так и не освоила, верю что дизайнер там не плохой. :-) Сложности: Выполнить sql запрос в access. Комментарии: Не поняла поле day будет date или datetime? И еще текста - 4 вида. Какой из них длинный, а какой короткий? Чем varchar(255) отличается от tinytext? |
|||||
5 | Установка сервера MySQL |
2 теста |
|||
На этом уроке мы установим MySQL Community Server и программу HeidiSQL для подключения к нему. |
|||||
6 | SQL запросы для создания Базы |
1 тест |
|||
На этом уроке мы напишем SQL запросы для создания нашей базы данных отеля. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 30 мин. [Показать отчёт] Научился: Что вместо tinyint можно написать bool. Что primary key можно объявить в самом поле. Вспомнила команду для добавления внешнего ключа. explain и show create table изучала очень давно, с HeidiSQL забыла за ненадобностью. Сложности: Ничего Комментарии: Все хорошо. |
|||||
7 | Модель. Планирование. |
|
|||
На этом уроке самостоятельное задание - сформулировать все задачи, которые решает программа. Это будет своеобразное проектирование бизнес-модели проекта. Подсказка: смотрим на схему базы данных, на каждую таблицу по отдельности, и задаём себе несколько раз вопросы: что это? для чего? что можно с этим сделать? как это можно обработать? Отчёт отправил: 1232. Фомичева Наталья Выполнено за 20 мин. [Показать отчёт] Научился: Думать. Сложности: Сформулировать задачи бд и полностью их раскрыть. Комментарии: Регистрация нового клиента. Поиск и редактирование данных клиента. Добавление новой записи брони. Редактирование записи брони. Изменение статуса заявки. Добавление данных о комнатах. Редактирование данных о комнате. Распределение комнат по заявкам клиентов по дням. Выборка числа свободных комнат на определенную дату. Поиск другой информации о свободных комнатах. Изменение статуса в map или удаление записи. Создать календарь. Заполнить праздничные дни. Узнать рабочий день или выходной. |
|||||
8 | Модель. Список задач. |
|
|||
На этом уроке мы составим список задач. Для каждой задачи нужно будет написать SQL запрос (или несколько), который решает поставленную задачу. Запросы нужно писать в таком виде, в котором они сразу могут быть выполнены в SQL-мониторе. Каждый запрос необходимо проверить на работоспособность. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Повторила SQL запросы. Правда только самые простые. Группировку, агрегатные функции, объединение и пересечение еще бы повторить. Сложности: Научиться пользоваться хранимыми процедурами. Комментарии: Идем дальше. |
|||||
9 | Модель. SQL запросы для Client |
|
|||
На этом уроке мы составим SQL запросы для решения задач с таблицами Client и Calendar. По аналогии создай SQL запросы для остальных задач. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Вспомнила, что вместо звездочки нужно писать все поля, но не помню что такое страшное может произойти, если оставить * - инъекция сработает или переполнение массива при изменении бд будет... Сложности: Понять как перемещать вверх/вниз, если поле со значением step+1/-1 вдруг окажется пустым. Комментарии: Идем дальше. |
|||||
10 | Модель. SQL запросы для Room |
1 тест |
|||
На этом уроке мы составим SQL запросы для решения задач с таблицей Room. По аналогии создай SQL запросы для остальных задач. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Потренировалась с хранимыми процедурами. Сложности: Правильно реализовать перемещение вниз. Комментарии: Идем дальше. |
|||||
11 | Модель. SQL запросы для Book и Map |
|
|||
На этом уроке мы составим SQL запросы для всех остальных задач, для таблиц Book и Map. В отчёте напиши мини-отзыв о созданных запросах. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Повторила составление запросов на выборку, удаление и изменение записей в бд. Узнала о модификаторе /G, правда не поняла где его будет удобно использовать, ну да ладно. :-) Сложности: Понять для чего нужен LEFT JOIN. В моей базе NULL запрещено использовать и не связанную запись так просто не добавить. Комментарии: Хороший вступительный урок по SQL получился, все просто и элегантно, не то что эти кораблики. http://www.sql-ex.ru/help/select13.php#db_1 Способа проектирования другого не знаю, разве что потереть бд, когда программа уже готова и попытаться ее восстановить по памяти... было такое. Внешние связи так в программе и не восстановила. Научиться бы еще по тех заданию понимать какие конкретно запросы будут нужны. Все равно все запросы с первого захода прописать не реально. SQL мне нравится, правда не всегда понимаю какую конкретно выборку требуется произвести и как не упустить какую-нибудь мелочь типа пол таблицы с null значениями. |
|||||
12 | Модель. Имена методов. |
1 тест |
|||
На этом уроке мы пройдёмся ещё раз по списку составленных задач и дадим названия классам и методам, которые эти задачи будут выполнять. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Уметь правильно называть функции очень важно. Сложности: Писать и слушать одновременно. Комментарии: Обратила внимание на то, что в SQL запросах сохранен регистр, несмотря на то что MySql (в отличии от MS SQL) к регистру не чувствителен. |
|||||
13 | Класс MySQL. Драйвер и конструктор. |
1 тест |
|||
На этом уроке мы наконец-таки создадим проект. Установим Mysql DotNet Connector и начнём создавать класс MySQL для подключения к базе данных. Мы напишем конструктор и три метода. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Устанавливать MySQL коннектор, подключаться с помощью него к базе данных. Сложности: Разобраться с экзекьютами. Комментарии: Идем дальше. |
|||||
14 | Класс MySQL. Получение таблицы. |
1 тест |
|||
На этом уроке мы создадим ещё несколько полезных методов в классе MySQL для считывания, изменения и добавления записей. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Познала магию заполнения таблицы. Научилась использовать ExecuteNonQuery. Сложности: Разобраться с dataGrid. Комментарии: Все хорошо. |
|||||
15 | Класс MySQL. Обработка ошибок. |
|
|||
На этом уроке мы создадим функцию SqlError() для удобной обработки ошибок во время тестирования. Отчёт отправил: 1232. Фомичева Наталья Выполнено за 30 мин. [Показать отчёт] Научился: Отлавливать ошибки обращения к БД и обрабатывать их. Сложности: Ничего. Комментарии: Все хорошо. |
|||||
16 | Модульный тест |
1 тест |
|||
На этом уроке мы создадим модульный тест (UnitTest) для тестирования класса MySQL, который мы создали ранее. В уроке приводится только знакомство, без полного покрытия тестами нашего проекта, но в будущем мы к ним ещё вернёмся. В комментариях необходимо написать, использовал ли ты ранее модульные тесты. Полезная ссылка: https://msdn.microsoft.com/ru-ru/library/hh694602.aspx Отчёт отправил: 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 | Отображение таблицы |
|
|||
На этом уроке мы визуализируем созданное, через отображение в компоненте DataGridView. Заголовки столбцов можно поменять двумя разными способами. 1. sql.Select("SELECT id as Nr, client as Surname FROM Client"); 2. dataGridView1.Columns[0].HeaderText = "№"; Отчёт отправил: 1232. Фомичева Наталья Выполнено за 10 мин. [Показать отчёт] Научился: Менять заголовки таблицы разными способами. Сложности: Ничего. Комментарии: Сама разобралась как загрузить данные в таблицу. Удалила лишний код. Добавила dataGridView1.RowHeadersVisible = false; |
|||||
18 | Модель. Класс Клиента |
1 тест |
|||
На этом уроке мы наконец-таки начнём создавать первый класс Бизнес Модели Отеля. Это класс Model.Client, для подготовки которого потребуется ещё некоторые вспомогательные работы. Отчёт отправил: 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 | Модель. Всё про Клиента |
1 тест |
|||
На этом уроке мы допишем класс Client. Реализуем четыре метода и слегка потестируем их. Написать свои впечатления о созданном классе модели. |
|||||
20 | Модель - Календарный год |
|
|||
На этом уроке мы начнём создавать модель календаря. Поработаем с запросами, напишем метод InsertDays(int year). Создадим тест для этого метода и немного доработаем класс тестов. |
|||||
21 | Модель - Календарные праздники |
1 тест |
|||
На этом уроке мы добавим в модель календаря методы для создания дней, пометки их праздничными/обычными. Также добавим ещё несколько тестов, чтобы они представляли из себя логически завершённую последовательность для тестирования календаря. |
|||||
22 | Модель. Класс комнаты |
|
|||
На этом уроке мы создадим модель на комнат, класс Room. Чтобы сделать это быстро - мы воспользуемся заготовками из класса Client.cs. В этом уроке мы не пишем тестов, поэтому класс создали в рекордно короткое время, 15 мин. Однако, создание тестов никто не отменял - это самостоятельное задание. |
|||||
23 | Модель. Удаление комнат. |
|
|||
На этом уроке мы добавим метод для удаления комнат. Исправим логическую ошибку метода Update в классах Room и Client. Подготовим функцию для теста созданного класса. Рекомендую эти тесты создать самостоятельно. |
|||||
24 | Модель. Тестирование комнат. |
|
|||
На этом уроке мы создадим TestRoom() для класса Room. Это будет одна функция, в которой мы последовательно будем вызывать все методы класса Room и проверять, на сколько правильно и корректно они отработали. В конце урока мы выполним тест пошагово. |
|||||
25 | Модель. Бронирование. |
|
|||
На этом уроке мы посмотрим картинки красивых комнат. И начнём создавать модуль бронирования Book. Создадим конструктор, методы InsertBook(), SelectBook() и UpdateBook(). В конце поговорим о том, что нужно отдыхать ДО того, как устанешь. |
|||||
26 | Модель. Статусы заказов. |
|
|||
На этом уроке мы поговорим о статусах заказа. Создадим методы изменения статуса и дней заезда/выезда. |
|||||
27 | Модель. Список заказов. |
1 тест |
|||
На этом уроке мы допишем два последних метода в класс Book. Методы для получения списка заказов по фильтру и без. В конце урока выведем результаты в грид, чтобы убедиться, что код работает. |
|||||
28 | Модель. Карта отеля 1 |
1 тест |
|||
На этом уроке мы начнём создавать модель управления комнатами. Пока мы создадим только конструктор, поля и метод void SelectMap (long room_id, long book_id, DateTime calendar_day) |
|||||
29 | Модель. Карта отеля 2 |
|
|||
На этом уроке мы создадим методы InsertMap() и InsertMapNone(). Также добавим в класс MySQL метод DateToString() и пробежимся по всему проекту, убирая yyyy-MM-dd. |
|||||
30 | Модель. Карта отеля 3 |
|
|||
На этом уроке мы создадим оставшиеся методы класса Map: SelectMap(), UpdateMap() и DeleteMap(). Пока без тестирования. |
|||||
31 | Вид. Список форм. |
1 тест |
|||
На этом уроке мы приступаем к следующему этапу создания программы - Представления (вид). Наша задача - составить список форм, которые будут в проекте, и для каждой формы нарисовать, как она будет выглядеть. | |||||
Итого: 31 видеоурок |
10 час. 16 мин. 17 тестов |
23 чел. | |||
Финалисты: Денис, Иван, Николай Миролюбов, Валентин, Кирилл Шмойлов, Frank, Rita, Ludmila, Станислав, Сергей Зулкарнаев, kalobyte, Tekashnik, egresr, Новопашин Владимир, Роман, Yefim, Василий, Ivan, vip, Илья, Михаил, Vdonsk, Егор Ульянов . |