# Использование MySQL Workbench для создания ER-диаграммы и DDL-скрипта ## Создание ER-диаграммы 1. Запустите **MySQL Workbench**, откройте вкладку **Модели** и создайте новую модель (иконка с плюсом) ![](../img/mywb_01.png) 1. Переименуйте модель. Название модели будет использоваться в DDL-скрипте как название базы данных, поэтому название должно соответствовать задаче: например, `ekolesnikov_test` для лабораторных работ и `user01` при выполнени демо-экзамена. ![](../img/mywb_02.png) двойной клик по названию модели откроет окно редактирования ![](../img/mywb_03.png) >Кнопку "Rename References" нужно жать, если у вас уже есть диаграмма или таблицы 1. Добавьте диаграмму ![](../img/mywb_04.png) Левую и правую панели можно скрыть, чтобы было больше места для диаграммы ![](../img/mywb_05.png) 1. Для добавления таблиц и связей используется панель или быстрые клавиши (можно посмотреть, наведя курсор на иконку) ![](../img/mywb_06.png) ### Добавление сущностей (таблиц) в модель 1. Кликните по иконке "Новая таблица" (или нажмите быструю клавишу `T`) ![](../img/mywb_07.png) В верхней панели появятся натройки таблицы, можно там ничего не менять и кликнуть мышкой в том месте диаграммы, куда вы хотите поместить новую таблицу 1. Двойным кликом по таблице можно открыть окно свойств, где задать название таблицы, добавить поля и их свойства ![](../img/mywb_08.png) ![](../img/mywb_09.png) >Двойной клик по свободному месту в конце списка полей добавляет новое поле 1. Создайте таблицы "Пользователь" (поле для внешнего ключа пока создавать не нужно) и "Роль" ### Создание связей #### "Один ко многим" Кликните по иконке связи "один ко многим" (или нажмите быструю кнопку `4`), затем кликните сначала по той таблице, где "много" (Пользователь), а затем по той где "один" (Роль). ![](../img/mywb_10.png) **MySQL Workbench** автоматически создаст поле для внешнего ключа, нужно только переименовать его в соответствии с используемыми соглашениями (для C# это **camelCase**, т.е. поле нужно назвать **roleId**) #### "Многие ко многим" Аналогично кликаете сначала по иконке связи, а затем по связываемым таблицам (я не стал создавать новые таблицы, использую существующие для примера). Система автоматически добавит таблицу связей и все нужные связи ![](../img/mywb_11.png) >Не забывайте переименовывать таблицы и поля в соответствии с используемыми соглашениями ## Создание DDL-скрипта **MySQL Worbench** позволяет сгенерировать DDL-скипт для создания базы данных по модели 1. Выберите пункт меню "Database - Forward Engineer..." ![](../img/mywb_12.png) 1. Введите параметры подключения к серверу (можно выбрать существующее подключение) ![](../img/mywb_13.png) 1. В настройках пока ничего менять не нужно ![](../img/mywb_14.png) 1. В окне выбора объектов тоже оставляем как есть ![](../img/mywb_15.png) 1. На следующем экране можно посмотреть сгенерированный скрипт и при необходимости внести правки ![](../img/mywb_16.png) 1. Если на сервере запрещено создавать базы данных, то можно удалить строчку `CREATE SCHEMA ...` 1. Если при создании модели забыли дать ей нужное название, то можно вернуться на окно настроек и включить настройку "Ommit schema qualifier.." ![](../img/mywb_17.png) 1. Вернувшись в окно DDL-скрипта не забудьте вписать строку `USE database_name` ![](../img/mywb_18.png) 1. Можно скопировать получившийся скрипт в файл или буфер обмена, а можно сразу выполнить его в текущем сервере ![](../img/mywb_19.png)