Как в yEd Graph Editor построить красивую схему базы данных

Хочу показать вам как с помощью нынче популярного приложения yEd, которое предназначено для построения различных диаграмм и схем, можно сделать полноценную (со всеми обозначениями) схему базы данных.

Итак, для начала у нас имеется стандартный контейнер с элементами для построения ERD (entity relationship diagram). Их обозначения показаны на рисунке.

image

Небольшое отступление, если вам понадобится вставить просто текст на схему, т.е. без какого-либо блока, то следующие простые шаги из комментария от jaiprakash быстро решают эту проблему. «Выделяете любую связь -> add label -> вводите текст -> convert to node.»

Итак, поставим условную задачу построения следующей схемы.

image

Создадим каркас из базовых элементов.

image

Для того, чтобы добавить обозначения первичных и внешних ключей придется немного исхитриться. Выбрав нужный элемент, добавим на него новый label, который назовем KEY. Т.к. он будет находится под основным блоком, то выделим его с помощью зажатого Ctr.

image

image

Настроим его Placment (размещение), выбрав Internal: top left (внутри, вверху слева), цвет по желанию, Distance(расстояние от краев) в ноль, Insets (вставка в пикселях) в 20 2 0 0, чтобы он был напротив поля атрибута с небольшим расстоянием, Font Family (шрифт) установим Segoe UI Symbol, т.к. он точно поддерживает необходимые символы.

image

Символы для копирования можно найти к примеру в таблице символов Windows.

image

image

Аналогичным образом поступаем с стрелками.

image

Для того, чтобы объединить несколько таблиц в блок, можно воспользоваться Grouping (группировка).

image

Итоговый вариант примера получится такой. Все понятно и красиво :)

image

Надеюсь эта небольшая статья поможет кому-нибудь из начинающий проектировщиков баз данных. Спасибо за внимание, буду рад комментариям.
Поддержать автора
Поделиться публикацией

Похожие публикации

Комментарии 11

    +2
    Я сам давно пользуюсь этой программой для рисования несложных схем. Для себя нашёл пока один недостаток. Не получается привязать «резиновую» линию к другой линии. Мне приходится добавлять небольшие кружочки:

    image
      0
      Здравствуйте, если я правильно понял Вашу проблему с блок-схемой.



      То могу предложить следующие варианты, которые использую для устранения недостатка.

      1. Можно просто накладывать линии друг на друга(т.е. все линии, что соединяются, сразу ведут в конечный блок) и сгибать в точках соединения, где это необходимо. При выделении и перемещении, структура не меняется.

      image

      2. Использовать из этого поста прием с невидимым блоком(см. пост). Тогда получится что-то вроде того же, только как по мне, может занять больше времени, зато «узлы» будут в панели со списком блоков.

      Почти тоже самое

      Линию придется кропотливо сдвигать по пикселям.

      Скриншот

      Линию без стрелки можно будет взять из блока UML или Edge Types(типы кромок). В принципе можно и сейчас их использовать в Ваших схемах с кружочками для более наглядного вида.

      Скриншот

      Надеюсь чем-то помог, спасибо за приглашение.

        0
        С кружочками даже лучше, иногда специально добавляю промежуточные фиктивные блоки, чтобы направление стрелки было видно не только у самого конечного блока. Хотя это несомненный костыль, который плохо сочетается с мощным функционалом авторазмещения.
        0

        Кстати, если нужно построить схему уже существующей БД, то можно использовать DBvisualizer, там как раз yFiles используется (который в yEd)

          0
          Тоже на работе пользуемся, я доволен, но вот не хватает хорошего упарвления z слоями, кстати еще есть и плагин для confluence, но работает он как то странно
            0
            Меня yEd однажды здорово выручил. Надо было проанализировать связи полусотни таблиц на сервере, где одних только схем несколько тысяч, а количество таблиц вообще запредельное. Visio и несколько специализированных инструментов, видя такие объемы, задумывались на сутки, крашились и т.п., но результата не дали. А yEd понимает файлы связей в xls-формате (и не только). Выгрузил из словаря СУБД связи, загрузил в yEd — и готово!
              0
              А можете поподробней рассказать? В каком формате файл должен быть, чтоб yEd его смог прочесть?
                +1
                В простейшем случае это две колонки с именами узлов (для моей задачи таблицы были узлами). Тогда строится граф, в котором каждая строка превращается в связь между узлами.
                Подробнее тут — Import of Excel Files
              0
              если вам понадобится вставить просто текст на схему, т.е. без какого-либо блока
              Выделяете любую связь -> add label -> вводите текст -> convert to node.
                0
                Спасибо, добавил эту инструкцию в пост.
                0
                Если не против, добавлю ссылку на платную, из тех что понравилась www.dbschema.com

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое