Итак, для начала у нас имеется стандартный контейнер с элементами для построения ERD (entity relationship diagram). Их обозначения показаны на рисунке.
Небольшое отступление, если вам понадобится вставить просто текст на схему, т.е. без какого-либо блока, то следующие простые шаги из комментария от jaiprakash быстро решают эту проблему. «Выделяете любую связь -> add label -> вводите текст -> convert to node.»
Итак, поставим условную задачу построения следующей схемы.
Создадим каркас из базовых элементов.
Для того, чтобы добавить обозначения первичных и внешних ключей придется немного исхитриться. Выбрав нужный элемент, добавим на него новый label, который назовем KEY. Т.к. он будет находится под основным блоком, то выделим его с помощью зажатого Ctr.
Настроим его Placment (размещение), выбрав Internal: top left (внутри, вверху слева), цвет по желанию, Distance(расстояние от краев) в ноль, Insets (вставка в пикселях) в 20 2 0 0, чтобы он был напротив поля атрибута с небольшим расстоянием, Font Family (шрифт) установим Segoe UI Symbol, т.к. он точно поддерживает необходимые символы.
Символы для копирования можно найти к примеру в таблице символов Windows.
Аналогичным образом поступаем с стрелками.
Для того, чтобы объединить несколько таблиц в блок, можно воспользоваться Grouping (группировка).
Итоговый вариант примера получится такой. Все понятно и красиво :)
Надеюсь эта небольшая статья поможет кому-нибудь из начинающий проектировщиков баз данных. Спасибо за внимание, буду рад комментариям.
Комментарии (10)
Geckelberryfinn
14.06.2019 17:05Кстати, если нужно построить схему уже существующей БД, то можно использовать DBvisualizer, там как раз yFiles используется (который в yEd)
ArsenAbakarov
14.06.2019 18:58Тоже на работе пользуемся, я доволен, но вот не хватает хорошего упарвления z слоями, кстати еще есть и плагин для confluence, но работает он как то странно
miksoft
14.06.2019 22:33Меня yEd однажды здорово выручил. Надо было проанализировать связи полусотни таблиц на сервере, где одних только схем несколько тысяч, а количество таблиц вообще запредельное. Visio и несколько специализированных инструментов, видя такие объемы, задумывались на сутки, крашились и т.п., но результата не дали. А yEd понимает файлы связей в xls-формате (и не только). Выгрузил из словаря СУБД связи, загрузил в yEd — и готово!
sovetnik
16.06.2019 04:25А можете поподробней рассказать? В каком формате файл должен быть, чтоб yEd его смог прочесть?
miksoft
16.06.2019 17:16В простейшем случае это две колонки с именами узлов (для моей задачи таблицы были узлами). Тогда строится граф, в котором каждая строка превращается в связь между узлами.
Подробнее тут — Import of Excel Files
jaiprakash
15.06.2019 13:50если вам понадобится вставить просто текст на схему, т.е. без какого-либо блока
Выделяете любую связь -> add label -> вводите текст -> convert to node.
FDA847
Я сам давно пользуюсь этой программой для рисования несложных схем. Для себя нашёл пока один недостаток. Не получается привязать «резиновую» линию к другой линии. Мне приходится добавлять небольшие кружочки:
sudden_death Автор
Здравствуйте, если я правильно понял Вашу проблему с блок-схемой.
То могу предложить следующие варианты, которые использую для устранения недостатка.
1. Можно просто накладывать линии друг на друга(т.е. все линии, что соединяются, сразу ведут в конечный блок) и сгибать в точках соединения, где это необходимо. При выделении и перемещении, структура не меняется.
2. Использовать из этого поста прием с невидимым блоком(см. пост). Тогда получится что-то вроде того же, только как по мне, может занять больше времени, зато «узлы» будут в панели со списком блоков.
Почти тоже самое
Линию придется кропотливо сдвигать по пикселям.
Скриншот
Линию без стрелки можно будет взять из блока UML или Edge Types(типы кромок). В принципе можно и сейчас их использовать в Ваших схемах с кружочками для более наглядного вида.
Скриншот
Надеюсь чем-то помог, спасибо за приглашение.
Busla
С кружочками даже лучше, иногда специально добавляю промежуточные фиктивные блоки, чтобы направление стрелки было видно не только у самого конечного блока. Хотя это несомненный костыль, который плохо сочетается с мощным функционалом авторазмещения.