# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
Мы начинаем создание базы данных для гостиницы. Твоя задача - самому подумать и создать описание сущностей проекта, для каждой выписать атрибуты. Отчёт отправил: 8005. Александр Выполнено за 20 мин. [Показать отчёт] Научился: Представлять , что требуется чтобы управлять отелем. Сложности: пытаться хотя бы мысленно не допустить повторяющихся данных, и увязать одну таблицу с другой Комментарии: продолжаем |
|||||
2 | Таблицы клиентов и заказов |
1 тест |
|||
На этом уроке мы перечислим поля таблиц Client и Book. Каждое поле этих таблиц потребует подробных комментариев, почему так, как можно сделать иначе, какие могут быть ошибки и так далее. Отчёт отправил: 8005. Александр Выполнено за 30 мин. [Показать отчёт] Научился: Думать, наперёд. Исключать в голове наличие повторяющихся данных в таблицах Сложности: Придумать что-то, что действительно мы опустили :) Комментарии: Я понимаю ,что большинство основного функционала мы не добавили, чтобы не утяжелять проект. Пытался придумать что-то без чего бы точно "минимум" не существовал и не смог. Поэтому те записи , что я добавил, лишь как хотелось бы мне, что бы БД казалась полнее :) |
|||||
3 | Таблицы комнат и дней |
1 тест |
|||
На этом уроке мы перечислим поля трёх таблиц: Room, Calendar, Map. В конце урока распишем типы каждого поля нашей базы данных. Подумай и напиши, какие ещё поля можно добавить в эти таблицы. Отчёт отправил: 8005. Александр Выполнено за 20 мин. [Показать отчёт] Научился: снова думать наперёд Сложности: По правде говоря, я даже испугался, ведь я бы действительно скорее сделал Первичный ключ для комнаты ее номер. А оказывается сколько может изменится потом, и сколько потом переделывать из - за такой оплошности. И ведь всего не предусмотришь, к сожалению. Комментарии: НА данном этапе я не понимаю , почему в таблице Map мы сделали составной первичный ключ из трёх полей - book_id , room_id, calendar_day. Если к примеру мы занесли запись из заказа 1 с номером комнаты 1 и на 1 число, то таблица позволит нам внести и такую запись - номер заказа 2 номер комнаты 1 на 1 число и получится , что два человека попали на одно число в одну комнату. Если убрать book_id из ключа то вроде бы всё норм. Дальше погляжу! |
|||||
4 | Создание базы в MS Access |
1 тест |
|||
На этом уроке мы создадим нашу базу данных в MS Access. Там же нарисуем схему базы данных и создадим связи между таблицами. Необходимо будет распечатать схему базы данных и прикрепить её на своём рабочем месте. Отчёт отправил: 8005. Александр Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Сделал в MS SQL все таблицы. Научился создавать первичные и внешие ключи Сложности: ничего Комментарии: Создал все таблицы в субд MS SQL Server. Там можно создать диаграмму где все таблицы сами свяжутся нужными связями в зависимости от их ключей. У рабочего стола колоть некуда листок. Уверяю, что данное дело не забудится :) |
|||||
5 | Установка сервера MySQL |
2 теста |
|||
На этом уроке мы установим MySQL Community Server и программу HeidiSQL для подключения к нему. |
|||||
6 | SQL запросы для создания Базы |
1 тест |
|||
На этом уроке мы напишем SQL запросы для создания нашей базы данных отеля. Отчёт отправил: 8005. Александр Выполнено за 10 мин. [Показать отчёт] Научился: Вроде бы сделал задание этого урока на прошлом уроке Сложности: ничего Комментарии: Ответь пож-та, я создал ранее таблицу с помощью management studio MS SQL Server. Я смогу продолжать далее проект если буду работать с этим инструментом, а не с MySQL и консолью ? |
|||||
7 | Модель. Планирование. |
|
|||
На этом уроке самостоятельное задание - сформулировать все задачи, которые решает программа. Это будет своеобразное проектирование бизнес-модели проекта. Подсказка: смотрим на схему базы данных, на каждую таблицу по отдельности, и задаём себе несколько раз вопросы: что это? для чего? что можно с этим сделать? как это можно обработать? Отчёт отправил: 8005. Александр Выполнено за 15 мин. [Показать отчёт] Научился: представлять возможные задачи, которые должна решать будущая программа Сложности: ничего Комментарии: Задачи 1.Добавлять клиента в бд 2.Добавлять комнату в бд 3.Добавлять заказы клиентов 4. Устанавливать выходные, праздничные дни в календаре. 5. Заселять клиентов в комнаты с помощью добавления записи в map 6.Удалять клиента 7. Удалять комнату 8. Удалять заказ 9.Удалять праздничные, выходные дни 10. ВЫписывать клиентов из отеля, посредством удаления записей из map\ 11. Изменять данные клиента 12. Изменять данные комнаты 13. Изменять расселение в map |
|||||
8 | Модель. Список задач. |
|
|||
На этом уроке мы составим список задач. Для каждой задачи нужно будет написать SQL запрос (или несколько), который решает поставленную задачу. Запросы нужно писать в таком виде, в котором они сразу могут быть выполнены в SQL-мониторе. Каждый запрос необходимо проверить на работоспособность. Отчёт отправил: 8005. Александр Выполнено за 30 мин. [Показать отчёт] Научился: опыт в написании запросов Сложности: ничего Комментарии: Сначала подумал, что как то тяжело всё будет писать. а вроде всё легко вышло. ИМожет что-то не то понаписал |
|||||
9 | Модель. SQL запросы для Client |
|
|||
На этом уроке мы составим SQL запросы для решения задач с таблицами Client и Calendar. По аналогии создай SQL запросы для остальных задач. Отчёт отправил: 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 |
1 тест |
|||
На этом уроке мы составим SQL запросы для решения задач с таблицей Room. По аналогии создай SQL запросы для остальных задач. Отчёт отправил: 8005. Александр Выполнено за 10 мин. [Показать отчёт] Научился: подвёл свои ранее написанные запросы под те, что в видеоуроки. а именно сортировку добавил в выводе всех комнат , а также заполнение поля Step значениями ID Сложности: ничего Комментарии: ничего |
|||||
11 | Модель. SQL запросы для Book и Map |
|
|||
На этом уроке мы составим SQL запросы для всех остальных задач, для таблиц Book и Map. В отчёте напиши мини-отзыв о созданных запросах. Отчёт отправил: 8005. Александр Выполнено за 10 мин. [Показать отчёт] Научился: практика в запросах Сложности: на этом уроке снова же. у Вас позволяет целочисленные поля приравнивать к 'pattern'. У меня ошибка. Может это разность в MySQL и MS SQl ? Комментарии: Не понятно всё таки как в видеоуроке добавилось значение в book с Client_ID равным NULL. Это поле является внешним ключем таблицы Client поля ID. и по идее ему не на что ссылаться, т.к. в данном поле значения NULL не может быть. Сами по себе запросы оказались очень простыми, надеюсь что в своих программах сильно тяжелее не пойдет. Язык SQL начал изучать недавно. Очень понравился. Делаю упражнения может sql-ex. Там я сейчас не могу решить задачи с уровнем сложности 3 и 4. Над 2-ым уровнем сложности приходится голову поломать. Боялся в некой степени что будет что-то такое навороченное |
|||||
12 | Модель. Имена методов. |
1 тест |
|||
На этом уроке мы пройдёмся ещё раз по списку составленных задач и дадим названия классам и методам, которые эти задачи будут выполнять. Отчёт отправил: 8005. Александр Выполнено за 20 мин. [Показать отчёт] Научился: придумывать адекватные названия Сложности: ничего Комментарии: продолжаем |
|||||
13 | Класс MySQL. Драйвер и конструктор. |
1 тест |
|||
На этом уроке мы наконец-таки создадим проект. Установим Mysql DotNet Connector и начнём создавать класс MySQL для подключения к базе данных. Мы напишем конструктор и три метода. Отчёт отправил: 8005. Александр Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Мало того, что научился подключать бд в Студии и делать простейший запрос, также пришлось научиться создаать нового пользователя в Management Studio, разрешать удаленные подключения и прочее Сложности: Самое сложное было создать пользователя с паролем, который может подключиться к данному серверу хотя бы в той же Management Studio Комментарии: Классный урок. Вот она -вот она рыба моей мечты. Понял, что знать нужно очень много чтобы координировать работу БД и основной программы, пока гуглил множество вопросов для решения возникающих проблем. |
|||||
14 | Класс MySQL. Получение таблицы. |
1 тест |
|||
На этом уроке мы создадим ещё несколько полезных методов в классе MySQL для считывания, изменения и добавления записей. Отчёт отправил: 8005. Александр Выполнено за 40 мин. [Показать отчёт] Научился: узнал о функциях получающих таблицу Сложности: в MS SQL у класса SqlCommand нет функции LastInsertedID(). Печаль - беда.примерно почитал как люди берут ID последней вставки , подделаю когда пойму для чего нам нужен будет этот самый ID. Комментарии: Не понял для чего нужна функции addslashes. Что она экранировать будет? |
|||||
15 | Класс MySQL. Обработка ошибок. |
|
|||
На этом уроке мы создадим функцию SqlError() для удобной обработки ошибок во время тестирования. Отчёт отправил: 8005. Александр Выполнено за 20 мин. [Показать отчёт] Научился: узнал о таком удобном решении, на моменте отладки, да и не только отладки Сложности: ничего Комментарии: продолжаем |
|||||
16 | Модульный тест |
1 тест |
|||
На этом уроке мы создадим модульный тест (UnitTest) для тестирования класса MySQL, который мы создали ранее. В уроке приводится только знакомство, без полного покрытия тестами нашего проекта, но в будущем мы к ним ещё вернёмся. В комментариях необходимо написать, использовал ли ты ранее модульные тесты. Полезная ссылка: https://msdn.microsoft.com/ru-ru/library/hh694602.aspx Отчёт отправил: 8005. Александр Выполнено за 20 мин. [Показать отчёт] Научился: вспомнил простейшие знания о UnitTests. Сложности: ничего Комментарии: Двигаемся дальше |
|||||
17 | Отображение таблицы |
|
|||
На этом уроке мы визуализируем созданное, через отображение в компоненте DataGridView. Заголовки столбцов можно поменять двумя разными способами. 1. sql.Select("SELECT id as Nr, client as Surname FROM Client"); 2. dataGridView1.Columns[0].HeaderText = "№"; Отчёт отправил: 8005. Александр Выполнено за 10 мин. [Показать отчёт] Научился: научился выводить таблицу в датаГридВью Сложности: ничего Комментарии: Вот она крутотень. Короткий урок, но такой хорошей вещи учит. Всё таки хочется теперь чтоб мы могли редактировать поля в бд всё сохранялось. |
|||||
18 | Модель. Класс Клиента |
1 тест |
|||
На этом уроке мы наконец-таки начнём создавать первый класс Бизнес Модели Отеля. Это класс Model.Client, для подготовки которого потребуется ещё некоторые вспомогательные работы. Отчёт отправил: 8005. Александр Выполнено за 30 мин. [Показать отчёт] Научился: получаю опыт в связывании SQL и С# Сложности: всё таки понять, для чего нужна AddSlashes Комментарии: Люди добрый посмотрите , кто разбирается, Валерий ты в тот раз откликался на мой вопрос про AddSlashes. НА скрине видно, что я добавил информацию , содержащую " ' ". В получившийся таблицу у нас эти самые кавычки разумеется заменились на слэши. Так и должно быть? у всех же будет меняться запись в БД если пользователь будет пытаться ввести строку с кавычкой одинарной ? И для поясните , кто может каким образом эта функция защищает от инъекции. Т.е. как пользователь может что-то нарушить. Заранее спасибо |
|||||
19 | Модель. Всё про Клиента |
1 тест |
|||
На этом уроке мы допишем класс Client. Реализуем четыре метода и слегка потестируем их. Написать свои впечатления о созданном классе модели. Отчёт отправил: 8005. Александр Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Опыт в работе С БД Сложности: придумать нормальную реализацию метода UpdateClient :) Комментарии: Сделал по-своему метод UpdateClient. Реагирует на изменение ячейки в датагридвью. По ячейке определяет ID клиента и новое значение. Эти данные передает в метод и происходит изменение. Я понимаю, что на данном этапе никак не задействованы свойства полей. Потом элементарные проверки добавлю обязательно. |
|||||
20 | Модель - Календарный год |
|
|||
На этом уроке мы начнём создавать модель календаря. Поработаем с запросами, напишем метод InsertDays(int year). Создадим тест для этого метода и немного доработаем класс тестов. Отчёт отправил: 8005. Александр Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: практика в работе бд и с# Сложности: нет в Transact - SQL оператора IGNORE. Не доделывает майкрософт почему то такие мелочи. Пришлось сделать сначала запрос на содержание текущего дня в таблице и только потом его добавление Комментарии: продолжаем |
|||||
21 | Модель - Календарные праздники |
1 тест |
|||
На этом уроке мы добавим в модель календаря методы для создания дней, пометки их праздничными/обычными. Также добавим ещё несколько тестов, чтобы они представляли из себя логически завершённую последовательность для тестирования календаря. Отчёт отправил: 8005. Александр Выполнено за 30 мин. [Показать отчёт] Научился: опыт в написании запросов, юнит тестов Сложности: ничего Комментарии: Тесты - классная штука. |
|||||
22 | Модель. Класс комнаты |
|
|||
На этом уроке мы создадим модель на комнат, класс Room. Чтобы сделать это быстро - мы воспользуемся заготовками из класса Client.cs. В этом уроке мы не пишем тестов, поэтому класс создали в рекордно короткое время, 15 мин. Однако, создание тестов никто не отменял - это самостоятельное задание. Отчёт отправил: 8005. Александр Выполнено за 50 мин. [Показать отчёт] Научился: в этом уроке всё таки пришлось разобраться и найти аналог LastInsertedID() MySQL. Если мы хотим получить айдишник последней вставки нужно сделать такой - SELECT @@IDENTITY или такой - SELECT SCOPE_IDENTITY() запрос Сложности: придумать как можно сделать unit test на вставку данных попроще, ведь мы портачим инкремент в таблице Room тестовыми добавлениями комнат Комментарии: двигаемся дальше |
|||||
23 | Модель. Удаление комнат. |
|
|||
На этом уроке мы добавим метод для удаления комнат. Исправим логическую ошибку метода Update в классах Room и Client. Подготовим функцию для теста созданного класса. Рекомендую эти тесты создать самостоятельно. Отчёт отправил: 8005. Александр Выполнено за 30 мин. [Показать отчёт] Научился: на этот раз точно запомнил как сбивать автоинкремент в MS SQL Сложности: ничего Комментарии: сделал совокупный тест, который добавляет комнату, выбирает в таблице комнат ID по номеру комнаты и Step по номеру комнаты. Сравнивает их на равенство. После Этого удаляет эту комнату и Воззвращает счетчик автоинкремента в нормальное положение |
|||||
24 | Модель. Тестирование комнат. |
|
|||
На этом уроке мы создадим TestRoom() для класса Room. Это будет одна функция, в которой мы последовательно будем вызывать все методы класса Room и проверять, на сколько правильно и корректно они отработали. В конце урока мы выполним тест пошагово. Отчёт отправил: 8005. Александр Выполнено за 30 мин. [Показать отчёт] Научился: практика в написании тестов Сложности: ничего Комментарии: Добавил в тест проверку на удаление. На редактирование информации проверял также как и с клиентами. Вывод информации в таблице по кнопке, и возможность переписывать поля в таблице сразу с сохранением, кроме автоинкремента. Он кстати сам блокируется, что очень круто |
|||||
25 | Модель. Бронирование. |
|
|||
На этом уроке мы посмотрим картинки красивых комнат. И начнём создавать модуль бронирования Book. Создадим конструктор, методы InsertBook(), SelectBook() и UpdateBook(). В конце поговорим о том, что нужно отдыхать ДО того, как устанешь. Отчёт отправил: 8005. Александр Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: практика в работе бд с С# Сложности: как то всё подзапуталось, с входными переменными у некоторых методов, вовзращаемыми значениями. Думаю всё встанет на свои места , когда появится интерфейс и станет понятно, каким образом мы будем добавлять новые записи, как будет происходить редактирование и что вообще можно будет редактировать Комментарии: продолжаем |
|||||
26 | Модель. Статусы заказов. |
|
|||
На этом уроке мы поговорим о статусах заказа. Создадим методы изменения статуса и дней заезда/выезда. Отчёт отправил: 8005. Александр Выполнено за 20 мин. [Показать отчёт] Научился: практика в написании запросов Сложности: ничего Комментарии: Нужно еще проверять даты, чтоб к примеру From_day не было позже Till_Day. Book_Date сюда же |
|||||
27 | Модель. Список заказов. |
1 тест |
|||
На этом уроке мы допишем два последних метода в класс Book. Методы для получения списка заказов по фильтру и без. В конце урока выведем результаты в грид, чтобы убедиться, что код работает. Отчёт отправил: 8005. Александр Выполнено за 20 мин. [Показать отчёт] Научился: практика в написании запросов Сложности: ничего Комментарии: два этих метода были уже написаны имною на прошлых уроках. Переделал их с соединением таблицы Clinet и добавлением поля Client в результирующий набор |
|||||
28 | Модель. Карта отеля 1 |
1 тест |
|||
На этом уроке мы начнём создавать модель управления комнатами. Пока мы создадим только конструктор, поля и метод void SelectMap (long room_id, long book_id, DateTime calendar_day) Отчёт отправил: 8005. Александр Выполнено за 25 мин. [Показать отчёт] Научился: практика в написании запросов Сложности: ничего Комментарии: продолжаем |
|||||
29 | Модель. Карта отеля 2 |
|
|||
На этом уроке мы создадим методы InsertMap() и InsertMapNone(). Также добавим в класс MySQL метод DateToString() и пробежимся по всему проекту, убирая yyyy-MM-dd. Отчёт отправил: 8005. Александр Выполнено за 30 мин. [Показать отчёт] Научился: практика в написании запросов Сложности: ничего Комментарии: продолжаем |
|||||
30 | Модель. Карта отеля 3 |
|
|||
На этом уроке мы создадим оставшиеся методы класса Map: SelectMap(), UpdateMap() и DeleteMap(). Пока без тестирования. Отчёт отправил: 8005. Александр Выполнено за 20 мин. [Показать отчёт] Научился: практика в написании запросов Сложности: ничего Комментарии: для меня всё под конец модели запуталось. Нужен интерфейс управления, чтобы разобраться. но ничего скоро |
|||||
31 | Вид. Список форм. |
1 тест |
|||
На этом уроке мы приступаем к следующему этапу создания программы - Представления (вид). Наша задача - составить список форм, которые будут в проекте, и для каждой формы нарисовать, как она будет выглядеть.
Отчёт отправил: 8005. Александр Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: продумывать интерфейс. что потребуется для управления программой Сложности: таблица map. как наиболее легко добавить туда запись. Да и таблица новой резервации тоже. Знать ID клиента не очень удобно. Логичнее всего , конечно к примеру нажать на кллиенте и в выпадающем меню повесить на него новую бронь. Главное начать рисовать, всё дорисуется само потом Комментарии: Ждём след. уроков |
|||||
Итого: 31 видеоурок |
10 час. 16 мин. 17 тестов |
23 чел. | |||
Финалисты: Денис, Иван, Николай Миролюбов, Валентин, Кирилл Шмойлов, Frank, Rita, Ludmila, Станислав, Сергей Зулкарнаев, kalobyte, Tekashnik, egresr, Новопашин Владимир, Роман, Yefim, Василий, Ivan, vip, Илья, Михаил, Vdonsk, Егор Ульянов . |