Работа с таблицами
Все действия с уже существующими таблицами и заметками — выделение, перемещение, копирование, удаление, назначение цвета и выбор того, что отображается на холсте, — а также элементы управления холстом вокруг них.
Сначала идут команды для таблиц и заметок; затем свойства таблицы, фокус на таблицах, индексы и альтернативные ключи, автоматическое размещение и СУБД; и в конце сам холст: панель инструментов холста, масштаб, перемещение вида и то, куда ведет переход, а также просмотр различий.
Группам таблиц, то есть рамкам, объединяющим таблицы, посвящена отдельная страница — см. Группы таблиц.
Множественное выделение
Поддерживаются три способа:
Ctrl + drag(Windows/Linux) или⌘ + drag(Mac)Ctrl + click(Windows/Linux) или⌘ + click(Mac)Ctrl + AилиCtrl + Alt + A(Windows/Linux),⌘ + Aили⌘ + ⌥ + A(Mac)
Заметки выделяются так же, и любое из двух сочетаний клавиш для выделения всего захватывает сразу все таблицы и заметки. Заметки, скрытые через View Option → Memos, не попадают ни в выделение всего, ни в рамку выделения — см. Параметры вида таблиц.
Группы таблиц добавляются к выделению с помощью Ctrl + click (Windows/Linux) или ⌘ + click (Mac) по их строке заголовка, но выделение всего никогда их не захватывает.
Ctrl + A уступает курсору ввода, поэтому во время редактирования ячейки это сочетание выделяет текст, а не диаграмму.
Рамка выделения отмечает таблицу или заметку, когда накрывает ее середину, а не когда просто касается края. Группу таблиц она захватывает, только если охватывает всю рамку группы, поэтому рамка, нарисованная внутри группы, выделяет таблицы без самой группы.
Щелчок правой кнопкой мыши по уже выделенному элементу сохраняет все выделение, поэтому пункты меню, например Color, Group selected tables и Delete selected, применяются ко всему выделению. Щелчок правой кнопкой мыши по любой другой таблице, заметке или группе таблиц выделяет только ее, даже при зажатой клавише Ctrl или ⌘, а щелчок правой кнопкой мыши по связи или по пустой области холста снимает выделение.
Клавиша Escape снимает выделение. Пока открыто поле редактирования ячейки, заметки или имени группы таблиц либо идет рисование связи или группы через New Table Group, первое нажатие Escape завершает это действие, а второе снимает выделение.

В сеансе совместного редактирования выделение, ячейка в фокусе и рамка выделения каждого участника отображаются на холсте цветом этого участника — см. Совместное редактирование.
Перемещение нескольких таблиц
Перетащите любую таблицу или заметку, которая уже входит в выделение, и вместе с ней переместится все выделение — клавиша-модификатор не нужна.
Перетаскивание элемента вне выделения сужает выделение до этого элемента и перемещает только его. Ctrl + drag (Windows/Linux) или ⌘ + drag (Mac) в обоих случаях сохраняет выделение.
Таблицы и заметки перемещаются только левой кнопкой мыши. Щелчок правой кнопкой мыши выбирает то, к чему применяется контекстное меню, и ничего не перемещает, а перетаскивание средней кнопкой мыши вместо этого перемещает холст — см. Навигация по холсту.

Выделенная группа таблиц тоже перемещается вместе со своими таблицами, а таблица, которая одновременно выделена и входит в перемещаемую группу, перемещается один раз.
От того, куда отпущена таблица, зависит, попадет ли она в группу или выйдет из нее, — см. Добавление и исключение таблиц.
У таблиц и заметок общий порядок наложения. Нажатие на таблицу или заметку левой или правой кнопкой мыши переносит ее на передний план перед всеми остальными таблицами и заметками, а нажатие на строку заголовка группы таблиц или щелчок правой кнопкой мыши по ее телу переносит на передний план ее таблицы.
Этот порядок не сохраняется: в повторно открытой диаграмме таблицы накладываются в том порядке, в каком они перечислены в файле, а все заметки располагаются над ними.
Копирование и вставка таблиц и заметок
Копирует выделенные таблицы и заметки и вставляет их обратно как новые.
Сочетания клавиш: Ctrl + C (Windows/Linux) или ⌘ + C (Mac), Ctrl + V (Windows/Linux) или ⌘ + V (Mac)
Скопированная таблица сохраняет имя, комментарий, столбцы и цвет; скопированная заметка сохраняет текст, размер и цвет.
Индексы и связи тоже копируются: индекс целиком переносится в скопированную таблицу, а связь копируется вместе со своим типом и действиями ON DELETE и ON UPDATE, если обе соединяемые ею таблицы входят в копируемый набор. Связь, попавшая в копию лишь наполовину, отбрасывается, а не продолжает указывать на оригинал.
Вставленные копии становятся новым выделением, а каждая повторная вставка той же копии смещает ее еще на 50px, поэтому повторные вставки не ложатся друг на друга.
Копия не сохраняет группу таблиц: вставленная таблица не входит ни в одну группу, даже если оказывается внутри рамки группы, а выделенная группа не копируется.
Пока View Option → Memos скрывает заметки, вставка все равно добавляет содержащиеся в ней заметки — скрытыми и невыделенными, поэтому новым выделением становятся только вставленные таблицы.

Если внутри таблицы в фокусе выделены столбцы, то же сочетание клавиш копирует вместо таблиц эти столбцы — см. Редактирование таблиц.
Дублирование таблиц и заметок
Удерживая клавишу Alt, перетащите таблицу или заметку левой кнопкой мыши.
За указателем следует полупрозрачный предпросмотр, и при отпускании кнопки копия появляется там, где находится предпросмотр.
Если захваченный элемент уже входит в выделение, дублируется все выделение. Иначе выделение заменяется сущностью под указателем.
Alt + click без перемещения помещает копию на 50px ниже и правее, сдвигая ее еще дальше всякий раз, когда это место уже занято.
Дубликат переносит то же, что и вставка: имена, комментарии, столбцы, цвета, размеры заметок, а также индексы и связи, целиком относящиеся к скопированному. Как и вставка, он не попадает ни в одну группу таблиц.
Alt + drag по строке заголовка группы таблиц перемещает группу так же, как обычное перетаскивание; группа никогда не дублируется.

Удаление таблиц и заметок
Удаляет выделенные таблицы, заметки и группы таблиц.
Сочетания клавиш:
DeleteилиBackspace. Они удаляют все выделение, кроме случая, когда выделена только таблица, в которой выделена часть столбцов, а масштаб больше70%: тогда вместо этого они удаляют эти столбцы — см. Удаление столбцов.Ctrl + BackspaceилиCtrl + Delete(Windows/Linux),⌘ + Backspaceили⌘ + Delete(Mac). Они всегда удаляют выделенные таблицы, заметки и группы таблиц, даже когда выделены столбцы.

Удалять можно и через контекстные меню. Последний пункт меню таблицы или заметки называется Delete selected, когда эта таблица или заметка — один из двух или более выделенных элементов, и удаляет все выделение. В противном случае он называется Delete и удаляет только эту таблицу или заметку. Если меню таблицы открыто над строкой выделенного столбца, пункт вместо этого называется Delete column или Delete columns, как описано в разделе Удаление столбцов.
Вместе с таблицей удаляются ее связи и индексы. При удалении группы таблиц ее таблицы сохраняются, но уже вне группы — см. Удаление группы.
Подтверждение не запрашивается, каждое удаление составляет один шаг отмены, а в редакторе с атрибутом readonly ничего не удаляется.
При удержании Delete и Backspace удаляют только один раз и никогда не удаляют связь — см. Редактирование связей. Пока вы вводите текст в ячейке, заметке или любом другом текстовом поле, они вместо этого редактируют текст.
В Настройках эти две клавиши указаны как Delete Selection — см. Сочетания клавиш.
Цвет таблиц и заметок
Можно назначать цвета, чтобы различать элементы по категориям.
Цвет таблицы отображается вдоль ее левого края, а цвет заметки — полосой вдоль верхнего края. Щелкните этот край или полосу левой кнопкой мыши либо выберите Color в контекстном меню таблицы или заметки, чтобы открыть окно выбора цвета у указателя. Цвет применяется ко всем выделенным таблицам, заметкам и группам таблиц, а не только к тому элементу, по которому вы щелкнули.
Цвет группы таблиц задается пунктом Color в ее собственном меню, а таблица в окрашенной группе показывает цвет группы на своем заголовке, сохраняя собственный цвет на левом крае, — см. Цвет группы.

Окно выбора цвета содержит сверху вниз:
- Область насыщенности и яркости, затем ползунок оттенка с предпросмотром цвета рядом с ним. Если браузер поддерживает пипетку, кнопка с пипеткой перед ползунком,
Pick a color from the screen, берет цвет из любой точки экрана. - Поля
Hex,R,GиB. ПолеHexпринимает 3, 4, 6 или 8 шестнадцатеричных цифр с#или без него, а также вставленное значениеrgb(),hsl()или имя цвета CSS. Полное 6- или 8-значное значение применяется по мере ввода, а все остальное — по нажатиюEnterили при выходе из поля. ПоляR,GиBпринимают целые числа, считая любое значение больше255равным255, и применяются по нажатиюEnterили при выходе из поля. Текст, который окно выбора цвета не может распознать, отбрасывается. - Шестнадцать образцов стандартных цветов в два ряда по восемь: Red, Orange, Amber, Yellow, Lime, Green, Teal, Cyan, Blue, Indigo, Violet, Purple, Pink, Crimson, Brown и Gray. При наведении указателя на образец цвета отображается его шестнадцатеричный код.
Document colors: до восьми цветов, которые уже используются в таблицах, заметках и группах таблиц документа, начиная с самых частых. Этот ряд отображается, только если такие цвета есть.No color.
Цвет всегда непрозрачный: в окне выбора цвета нет управления прозрачностью, и любая прозрачность во введенном или вставленном значении отбрасывается.
Открытие окна выбора цвета ничего не изменяет, а выбор цвета, который уже есть у выделения, не добавляет шаг отмены.
Кнопка No color убирает цвет у всех выделенных таблиц, заметок и групп таблиц за один шаг отмены и закрывает окно выбора цвета. Пункт Remove color, который находится сразу под Color в контекстных меню таблицы, заметки и группы таблиц, пока у какого-либо выделенного элемента есть цвет, делает то же самое, не открывая окно выбора цвета.
При открытии окно выбора цвета получает фокус клавиатуры, а Tab и Shift + Tab переходят по кругу между его элементами управления. Клавиши со стрелками сдвигают область и ползунок оттенка на 1, или на 10 с зажатой клавишей Shift, и переходят от образца к образцу, сразу применяя каждый из них.
Пока фокус клавиатуры в окне выбора цвета, отмена и повтор, сочетания клавиш масштаба, Search и Toggle Explorer по-прежнему доходят до редактора, а остальные сочетания клавиш редактора — нет: сочетания клавиш удаления ничего не удаляют, а Delete и Backspace только редактируют текст полей Hex, R, G и B.
Escape закрывает окно выбора цвета, как и нажатие на холст за его пределами.
Нажатие в Обозревателе не считается нажатием на холст, поэтому окно выбора цвета остается открытым. Строка, выбранная там, меняет выделение, и следующий выбранный цвет применяется к новому выделению.
Параметры вида таблиц
Доступны следующие параметры вида:
- Table Comment
- Column Comment
- DataType
- Default
- Not Null
- Unique
- Alternate Key
- Auto Increment
- Relationship
- Referential Actions
- Table Groups
- Memos
Параметры Unique, Alternate Key и Auto Increment выключены по умолчанию, а остальные включены.
Параметр Alternate Key ставит на столбцах каждого альтернативного ключа метки, например AK1.1, — см. Альтернативные ключи.
Параметр Referential Actions показывает метки D: и U:, которые действия ON DELETE и ON UPDATE связи ставят у дочернего конца ее линии связи, — см. Как читать линию связи. Его выключение скрывает только эти метки и не сдвигает ни таблицы, ни линии связи.
Параметр Table Groups показывает группы таблиц и цвета групп на заголовках их таблиц. Его выключение скрывает их на холсте, мини-карте и в экспортированных изображениях, не сдвигает ни одной таблицы и оставляет каждую таблицу в ее группе — см. Скрытие групп. Кроме того, из Обозревателя исчезает папка Table Groups, с панели инструментов холста — кнопка New Table Group, а поиск в Обозревателе перестает находить имена групп.
Параметр Memos показывает заметки. Его выключение скрывает все заметки на холсте, мини-карте и в экспортированных изображениях и не сдвигает ни таблицы, ни линии связи. Скрытые заметки не занимают места, поэтому полосы прокрутки, мини-карта и компас Go to content их не учитывают.
Скрытие заметок снимает с них выделение и закрывает открытое поле редактирования заметки. Обозреватель убирает свою папку Memos, а его Поиск и замена и префикс : быстрого поиска по ним не ищут. Пока заметки скрыты, пункт New Memo исчезает из контекстного меню, с панели инструментов холста, из быстрого поиска и с экрана приветствия, а Alt + M не добавляет заметку. Вставка или Импорт с добавлением все равно добавляет содержащиеся в них заметки — скрытыми и невыделенными.
В редакторе с атрибутом readonly переключатели ничего не меняют.

Карточки режима Flow на вкладке «Визуализация» не следуют этим параметрам: у них свое отображение строк, и они рисуют линии связи, даже когда параметр Relationship выключен.
Свойства таблицы
Открывает окно свойств таблицы.
Выберите Table Properties в контекстном меню таблицы — окно откроется для той таблицы, по которой вы щелкнули правой кнопкой мыши, — или выделите таблицу и нажмите Alt + Space.
Окно открывается посередине затемненного холста. Затемняется только холст, поэтому открытый Обозреватель остается открытым и доступным рядом с окном. В заголовке окна находятся надпись Table Properties, пять последних открытых таблиц в виде плашек с подсвеченной текущей и кнопка закрытия. Щелкните плашку, чтобы перейти к этой таблице, не открывая окно заново.
Под заголовком расположены три вкладки: Indexes, Schema SQL и Code Generator. Размер окна одинаков для всех трех, поэтому при переключении вкладок оно не сдвигается и не меняет размер.
Закройте окно кнопкой закрытия, клавишей Escape или щелчком по холсту за его пределами.
Выбор в Обозревателе любой строки, кроме папки, или переход к совпадению его поиска закрывает окно «Свойства таблицы» перед переходом. То же делает сочетание Ctrl + F (Windows/Linux) или ⌘ + F (Mac), которое открывает поиск Обозревателя или, если Обозреватель уже открыт, ставит курсор ввода в его поле поиска. Любой другой щелчок в Обозревателе, в том числе по строке папки, или по кнопке Explorer на панели инструментов оставляет окно «Свойства таблицы» открытым. Нажатие Escape, пока фокус клавиатуры в Обозревателе, только возвращает фокус клавиатуры холсту, поэтому, чтобы закрыть окно «Свойства таблицы», нужно нажать Escape второй раз.
Вкладка Indexes описана в разделе Индексы.
Вкладка Schema SQL показывает DDL таблицы для выбранной базы данных: ее CREATE TABLE, отдельные ограничения, которые некоторые базы данных записывают для ее уникальных столбцов, и ее индексы. Она всегда выводит простые операторы CREATE, без заголовка и без скриптов перед таблицами и после них, как бы ни была настроена вкладка «Схема SQL» на панели инструментов. Панели параметров у нее нет, а ее контекстное меню предлагает только Database и Bracket.
Вкладка Code Generator генерирует код только для этой таблицы — см. Генератор кода.
В редакторе с атрибутом readonly окно все равно открывается, с меткой Read only рядом с заголовком, но на его вкладке Indexes правки недоступны.
Фокус на таблицах
Открывает вкладку «Визуализация» в режиме Flow с видом, суженным до выбранных таблиц и всех таблиц на расстоянии одной связи от них.
Выберите Focus on this table в контекстном меню таблицы или выделите одну или несколько таблиц и нажмите Alt + F.
Если таблица, по которой вы щелкнули правой кнопкой мыши, — одна из нескольких выделенных таблиц, пункт называется Focus on selected tables и включает фокус на всем выделении. Щелчок правой кнопкой мыши по таблице вне выделения включает фокус только на этой таблице.
Сочетание клавиш берет выделенные таблицы, не учитывает заметки и ничего не делает, если ни одна таблица не выделена.
Выделенная группа таблиц здесь ничего не значит — ни для сочетания клавиш, ни для пункта меню: ее таблицы учитываются, только если выделены сами, а это делает пункт Select tables в меню группы.
Что показывает суженный вид и как вернуться ко всей диаграмме, описано на странице Визуализация.
Индексы
Индексы задаются на вкладке Indexes окна свойств таблицы и включаются в экспортируемую Схему SQL.
Слева перечислены ключи и индексы таблицы, разделенные на две группы.
Группа Keys, которая отображается, если у таблицы есть ключи, перечисляет ключи, объявленные ее столбцами: PK_<table name> по столбцам с меткой PK, затем UQ_<table name>_<column name> для каждого столбца, отмеченного как Уникальный, в порядке столбцов. Имена соответствуют Схеме SQL выбранной базы данных, поэтому, когда параметр Bracket имеет значение None, для таблицы с указанием схемы, например sales.users, отображается PK_users при любой базе данных, кроме Databricks и Snowflake, — см. Имена таблиц с указанием схемы. Каждый ключ помечен как PK или UQ и отмечен значком замка. Здесь они доступны только для чтения и меняются только вместе с флагами PK и Уникальный столбцов.
Группа Indexes перечисляет индексы таблицы в порядке их добавления. У каждого индекса есть переключатель UQ, который делает его уникальным, поле имени и кнопка x, которая его удаляет. Индекс, являющийся альтернативным ключом, также показывает свой номер, например AK1. Добавьте индекс кнопкой Add Index внизу списка.
Справа под заголовком Columns перечислены столбцы таблицы, у каждого — флажок. Пока слева не выбран индекс, ничего изменить нельзя.
Установите флажок столбца, чтобы добавить его в выбранный индекс, и снимите флажок, чтобы убрать его. При выборе ключа его столбцы отображаются с установленными флажками, но флажки остаются недоступными.
Столбцы выбранного индекса перечислены ниже под заголовком Index order. Перетаскивайте их за маркер перетаскивания, чтобы изменить порядок, и щелкните плашку ASC или DESC в строке, чтобы сменить порядок сортировки на противоположный. В альтернативном ключе каждая строка заканчивается меткой AK<n>.<m>. В списке одновременно видны три строки, остальные прокручиваются.
В редакторе с атрибутом readonly при выборе ключа или индекса его столбцы по-прежнему отображаются, но кнопок Add Index и x нет, и ничего другого на вкладке изменить нельзя.
Обозреватель перечисляет индексы каждой таблицы в ее папке Indexes, и выбор индекса там выполняет переход к его таблице. Поиск Обозревателя находит и имена индексов и может их переименовывать — см. Что охватывает поиск.

Альтернативные ключи
Альтернативный ключ — это уникальный индекс по двум или более столбцам: индекс на вкладке Indexes с включенным переключателем UQ и как минимум двумя отмеченными столбцами таблицы.
Уникальный индекс по одному столбцу говорит не больше, чем флаг «Уникальный» этого столбца, поэтому он не считается альтернативным ключом, как и обычный индекс, первичный ключ или столбец, отмеченный как Уникальный.
Когда в параметрах вида включен параметр Alternate Key, диаграмма помечает столбцы каждого альтернативного ключа так, как их записывают erwin и IDEF1X: AK1.1, AK1.2 и т. д. По умолчанию этот параметр выключен.
Ключи нумеруются по положению их столбцов в таблице, а не по порядку добавления индексов. Ключ, у которого первый столбец в списке Index order стоит в таблице выше всех, получает номер AK1. При равенстве решает следующий столбец каждого ключа, а ключ, который является начальной частью более длинного ключа, идет перед ним.
Перемещение столбца внутри таблицы или изменение порядка в списке Index order ключа может изменить нумерацию ключей. Отмена удаления ключа возвращает ему прежний номер, и все соавторы видят одинаковые номера.
Каждый столбец ключа помечается как AK<n>.<m>, где n — номер ключа, а m — место столбца в списке Index order ключа. Столбец, входящий в несколько ключей, несет все метки через запятую.
Например, в таблице со столбцами a, b и c уникальные индексы по (c, a) и (b, a) становятся AK1 = (b, a) и AK2 = (c, a), потому что b стоит выше c. Поэтому у b отображается AK1.1, у c — AK2.1, а у a — AK1.2,AK2.2.
Метка рисуется в конце строки, после той ячейки, которую порядок столбцов ставит последней. Она не является ячейкой, поэтому никогда не получает фокус, не редактируется и не копируется — см. Редактирование таблиц.
Столбец первичного или внешнего ключа тоже может нести метку AK, поскольку метка ничего не заменяет: значок ключа в начале строки по-прежнему показывает PK и FK, а ячейка «Уникальный» сохраняет свою метку UQ.
Таблица с альтернативным ключом оставляет после последней ячейки каждой строки место для своей самой длинной метки; таблица без альтернативного ключа сохраняет свою ширину.
Метки отображаются на холсте ERD, где таблица, свернутая до имени при масштабе 70% и меньше, их не показывает, и при экспорте изображения, который рисует каждую таблицу полностью при любом масштабе. Предпросмотр при наведении в режиме Graph на вкладке «Визуализация» тоже их показывает; карточки Flow никогда их не показывают.
Вкладка Indexes показывает номера при любом состоянии этого параметра — см. Индексы.
Автоматическое размещение
Автоматически расставляет все таблицы на холсте.
Откройте Auto Layout из контекстного меню холста или из быстрого поиска и выберите одно из четырех размещений:
| Размещение | Что получается |
|---|---|
Force | Симуляция: связи притягивают таблицы друг к другу, соседние таблицы отталкиваются, а перекрывающиеся таблицы расходятся. |
Flow | Слева направо вдоль связей, причем каждая линия связи получает на таблице собственную точку привязки. Размещение старается свести пересечения к минимуму, но может оставить некоторые из них, которых другое размещение избежало бы. |
Tree - vertical | Уровнями сверху вниз: родительская таблица располагается над таблицами, у которых есть внешний ключ на нее. |
Tree - horizontal | Те же уровни, но слева направо. |
Размещение Force открывает предварительный просмотр на время, пока размещение стабилизируется, с кнопками Apply и Cancel в уведомлении, которое оно показывает.
Кадр предварительного просмотра строится по диаграмме в том виде, в каком она была на момент запуска размещения, поэтому по мере стабилизации таблицы могут уходить за пределы кадра. Предварительный просмотр отображается при масштабе 70% или меньше, поэтому таблицы в нем свернуты до имени и цветного края.
Кнопка Apply сохраняет положения таблиц такими, какие они в этот момент, а когда размещение останавливается, оно применяется само. Кнопка Cancel или клавиша Escape оставляет диаграмму в прежнем виде.
Остальные три рассчитываются за один раз вне основного потока, поэтому наблюдать не за чем: пока размещение вычисляется, отображается уведомление, а готовое расположение центрируется по области, которую диаграмма уже занимает. Кнопка Cancel или клавиша Escape отменяет размещение, которого вы больше не ждете, а на хосте, который не запускает общий воркер, размещение завершается уведомлением Could not place tables — см. Web Worker. Размещение, не вернувшее результат в течение 60 секунд, завершается так же.
Какое бы размещение вы ни выбрали, перемещаются таблицы и группы таблиц, а заметки остаются на месте. Связь таблицы с самой собой не учитывается, а несколько связей между одними и теми же двумя таблицами считаются за одну.
Каждое размещение держит таблицы каждой группы вместе, независимо от того, показаны ли группы, и подгоняет каждую группу, содержащую таблицы, под эти таблицы — см. Группы таблиц.
Результат попадает в историю как одна запись, поэтому одна отмена возвращает все таблицы и группы на прежние места.

Базы данных
Поддерживаемые базы данных:
- Databricks
- MSSQL
- MariaDB
- MySQL
- Oracle
- PostgreSQL
- Snowflake
- SQLite
Выберите базу данных в пункте Database контекстного меню холста, на панели параметров или в контекстном меню вкладок «Схема SQL» и «Генератор кода» либо в быстром поиске. Все они меняют одну и ту же настройку.
Этот выбор определяет синтаксис Схемы SQL при экспорте, автодополнение типа данных и типы, в которые разрешаются сгенерированный код и импортированные схемы.
От него зависит, какие варианты Statements и Header может выводить вкладка «Схема SQL». Вариант, которого нет у базы данных, остается на панели параметров, но приглушенным, а SQL переходит на ближайший доступный вариант.
От него также зависит, какие действия ON DELETE и ON UPDATE выводят Схема SQL и целевые форматы ORM Генератора кода и какие из них меню связи помечают как not in <database>, — см. ON DELETE и ON UPDATE и Генератор кода.
Импорт Схемы SQL сохраняет тип данных столбца вместе со списком аргументов независимо от того, есть ли этот тип в списке редактора, например TIMESTAMP WITH TIME ZONE, public.mood или integer[] — см. Типы данных. Автодополнение типа данных предлагает только типы, перечисленные для выбранной базы данных.


Панель инструментов холста
Поверх холста у середины его нижнего края находится небольшая плавающая панель инструментов, на которой слева направо расположены инструменты, действующие на сам холст, и команды, добавляющие на него элементы:
- Рука и указатель. По умолчанию выбран указатель; рука превращает любое перетаскивание в перемещение холста — как над таблицами, так и над пустым местом. Клавиша
Spaceпереключает руку и указатель. Пока активно рисование группыNew Table Group, вместо них отмечена кнопкаNew Table Group, а щелчок по руке или указателю, нажатиеSpaceили выбор нотации связи завершает рисование без добавления группы. New Table,New MemoиNew Table Group. КнопкаNew Tableдобавляет таблицу, как иAlt + N, аNew Memoдобавляет заметку, как иAlt + M. КнопкаNew Table Groupактивирует рисование группы, как иAlt + G, и выключает руку; повторный щелчок, как и повторное нажатиеAlt + G, завершает рисование без добавления группы. КнопкаNew Memoне отображается, пока View Option →Memosскрывает заметки, аNew Table Group— пока View Option →Table Groupsскрывает группы. В редакторе с атрибутомreadonlyне отображается ни одна из трех.- Масштаб:
Zoom out, текущий масштаб в процентах иZoom in. Обе кнопки меняют масштаб шагами так же, как сочетания клавиш масштаба, а щелчок по значению в процентах возвращает масштаб к100%. - Четыре нотации связей, те же четыре, с которых начинается создание связи, — см. Начало редактирования. Выбор одной из них переключает обратно на указатель, поскольку связь рисуется щелчками по двум таблицам.
- Режим дзен,
Alt + Z, который убирает все, кроме холста и этой панели инструментов. Повторное нажатиеAlt + Zили кнопка возвращает остальное. Открытый Обозреватель скрывается вместе с остальным, не закрываясь, и вместе с ним возвращается. Его по-прежнему можно открыть в режиме дзен — см. Когда Обозреватель скрывается. - Компас
Go to content, который появляется в конце панели инструментов, только пока на экране нет ни одной таблицы, видимой заметки или видимой группы таблиц, — см. Навигация по холсту.
Каждая кнопка, у которой есть сочетание клавиш, указывает его во всплывающей подсказке, например New Table (Alt + N) (Windows/Linux) или New Table (⌥ + N) (Mac).
Панель инструментов скрывается, пока открыто окно предварительного просмотра Force Автоматического размещения, окно свойств таблицы, путешествие во времени или просмотр различий, и возвращается после закрытия.

Увеличение и уменьшение масштаба
Масштаб меняется с помощью Ctrl + Wheel (Windows/Linux) или ⌘ + Wheel (Mac). Колесико мыши само по себе перемещает холст.
Жест сведения пальцев на трекпаде тоже меняет масштаб относительно точки жеста, как и два пальца на сенсорном экране, которые при движении еще и перемещают холст.
Сочетания клавиш: Ctrl + Plus (Windows/Linux) или ⌘ + Plus (Mac), Ctrl + Minus (Windows/Linux) или ⌘ + Minus (Mac)
Ctrl + 0 (Windows/Linux) или ⌘ + 0 (Mac) сразу возвращает масштаб к 100%, сохраняя середину экрана на месте.
Кнопки Zoom out и Zoom in на панели инструментов холста меняют масштаб шагами, как сочетания клавиш Minus и Plus: каждое нажатие изменяет его на 4 процентных пункта, сохраняя середину экрана на месте. Значение в процентах между ними показывает текущий масштаб, а щелчок по нему сразу возвращает масштаб к 100%, как и Ctrl + 0 (Windows/Linux) или ⌘ + 0 (Mac).
Масштаб меняется в диапазоне от 10% до 150%.
При масштабе 70% и меньше таблицы сворачиваются до имени и цветного края, а редактирование ячеек, сочетания клавиш для ячеек, копирование и вставка перестают работать, пока вы снова не увеличите масштаб.
Эти же три сочетания клавиш меняют масштаб и на вкладке «Визуализация», как в режиме Graph, так и в режиме Flow, каждый в пределах своего диапазона — см. Визуализация.

Навигация по холсту
У холста нет границ и размера, который нужно задавать. Таблицы и заметки находятся там, куда вы их поместили, и все описанное ниже относится к диаграмме, а не к странице фиксированного размера.
Чтобы переместить холст, перетащите пустую область холста или переключитесь клавишей Space на инструмент «Рука» и перетаскивайте в любом месте, в том числе над таблицей. Колесико мыши тоже перемещает холст, а Shift + Wheel перемещает его по горизонтали.
Тело группы таблиц, то есть область под ее строкой заголовка, для левой кнопки мыши считается пустой областью холста: его перетаскивание перемещает холст, Ctrl + drag (Windows/Linux) или ⌘ + drag (Mac) рисует рамку выделения, а щелчок снимает выделение.
Перемещение ничем не ограничено: колесико мыши, перетаскивание и инструмент «Рука» сдвигают вид настолько, насколько вы его двигаете, за пределы таблиц с любой стороны.
Перетаскивайте средней кнопкой мыши (нажав колесико), чтобы перемещать холст из любого его места, как с указателем, так и с рукой. Это работает, даже если нажатие приходится на таблицу, заметку, ячейку, значок или связь.
Перетаскивание средней кнопкой ничего не выделяет, не перемещает, не вызывает щелчков и сохраняет выделение. Оно закрывает открытое контекстное меню и окно выбора цвета, а собственные прокрутка и вставка браузера по щелчку средней кнопкой не запускаются.
Нажатие средней кнопкой на полосах прокрутки, мини-карте, панели инструментов холста или в открытом поле редактирования ячейки или заметки не перемещает холст.
Мини-карта в правом верхнем углу показывает диаграмму с запасом в один экран с каждой стороны, то есть весь диапазон полос прокрутки, выровненный наружу по крупной сетке, поэтому чем сильнее уменьшен масштаб, тем меньше диаграмма на мини-карте. Щелкните мини-карту, чтобы перенести вид в эту точку, или перетащите прямоугольник области просмотра, чтобы переместить вид. По мере уменьшения масштаба прямоугольник области просмотра растет и охватывает большую часть карты.
Она рисует каждую таблицу цветом этой таблицы, а каждую видимую группу таблиц — рамкой цвета группы позади ее таблиц.
Полосы прокрутки вдоль правого и нижнего краев описывают тот же диапазон перемещения: от положения, когда диаграмма находится сразу за одним краем экрана, до положения сразу за другим, поэтому он как минимум на экран длиннее нарисованной диаграммы и еще длиннее, пока вид находится за ее пределами. Вне режима дзен обе полосы прокрутки отображаются всякий раз, когда в документе есть таблица, видимая заметка или видимая группа таблиц, даже если все помещается на экране. В документе без них, например в таком, где все заметки скрыты через View Option → Memos, не отображаются ни полосы прокрутки, ни мини-карта.
Перетаскивание ползунка полосы прокрутки или прямоугольника области просмотра на мини-карте — единственный способ перемещения, у которого есть предел: он заходит не дальше таблиц, находящихся сразу за краем экрана, или не дальше точки, где началось перетаскивание, если она была дальше.
Если после перемещения на экране не осталось ни одной таблицы, видимой заметки или видимой группы таблиц, в конце панели инструментов холста появляется компас Go to content со стрелкой, указывающей на ближайший из этих элементов, и расстоянием до него. Нажмите на компас, чтобы поместить этот элемент в центр, не меняя масштаб.

Куда ведет переход
Любой переход к чему-либо на холсте сдвигает вид по одному правилу: результаты #, @ и : Быстрого поиска, строки Обозревателя и совпадения его Поиска и замены, строки списка Просмотра различий, кнопка карточки со значком внешней ссылки в режиме Flow и место вставки при Импорте с добавлением. В каждом из этих разделов сказано, что выделяет переход; в этом разделе — куда перемещается вид.
Переход никогда не меняет масштаб и выполняет не более одной прокрутки. С другой вкладки он сначала переключается на вкладку ERD.
Он измеряет холст в том виде, в каком тот отображается: под верхней панелью инструментов или на всю высоту в режиме дзен, а также справа от открытого Обозревателя, который сужает холст, а не перекрывает его.
Горизонталь и вертикаль оцениваются отдельно, и направление, в котором цель уже хорошо видна, остается в точности как есть:
- Цель длиной не более половины холста в этом направлении остается на месте, пока ее середина лежит в средней половине холста, то есть между четвертью и тремя четвертями ширины или высоты. Иначе ее середина переносится в середину холста.
- Более длинная цель, которая все еще помещается с запасом
40pxс каждого конца, остается на месте, пока видна целиком. Иначе по горизонтали она центрируется, а по вертикали ее верх переносится на40pxниже верхнего края холста. - Еще более длинная цель остается на месте, пока видна целиком или, если она длиннее холста, пока видна ее ключевая часть, указанная ниже. Иначе она центрируется, если помещается, а если нет, располагается как можно ближе к середине так, чтобы оба конца ее ключевой части оставались не менее чем в
40pxвнутри холста; у ключевой части, слишком длинной для этого, в40pxот края удерживается ее начало.
Поэтому небольшая таблица у левого края холста на половине его высоты сдвигается только по горизонтали.
Что переход выводит в поле зрения и какая ключевая часть должна быть видна, если целое не помещается:
- Таблица: вся таблица, ключевая часть — полоса с именем вдоль ее верха или, для совпадения в комментарии таблицы, ячейка комментария, пока View Option →
Table Commentпоказывает комментарии. При масштабе70%и меньше, когда таблицы свернуты до имени, ключевая часть — имя в середине рамки. - Столбец: его строка, ключевая часть — ячейка, к которой ведет переход: имя или комментарий, в котором найдено совпадение, пока View Option →
Column Commentпоказывает комментарии. При масштабе70%и меньше столбец выводит в поле зрения свою таблицу по правилу для таблиц. - Ячейка, слишком широкая, чтобы показать ее целиком, например длинный комментарий: ключевая часть — найденный в ней текст.
- Связь: прямоугольник, охватывающий две ее таблицы, ключевая часть — дочерняя таблица.
- Группа таблиц: ее рамка, ключевая часть — строка заголовка.
- Заметка или блок, который размещает Импорт с добавлением: целиком.
Если ни по одному направлению сдвиг не нужен, прокрутки нет, поэтому при повторном переходе к тому же месту второй раз ничего не сдвигается. Переход, прокручивающий холст, записывает прокрутку в историю изменений, как и любое другое изменение положения вида, а переход, который ничего не сдвигает, не оставляет ничего для отмены. При Импорте с добавлением прокрутка входит в тот же шаг, что и добавление. Строка списка Просмотра различий сдвигает только стороны сравнения, доступные только для чтения, поэтому ничего не записывает.
Никакой переход не начинает и не завершает рисование связи. Компас Go to content не является переходом: он помещает в центр то, на что указывает.
Просмотр различий
Можно сравнить ранее сохраненные документы с текущим документом.
Выберите Diff Viewer в контекстном меню холста и укажите документ .json, экспортированный ранее.
Сравнение открывается поверх холста: слева то, что изменилось, а затем рядом друг с другом сохраненный документ и текущий.
Текущий документ сравнивается в том виде, в каком он был на момент открытия сравнения; изменения, сделанные после этого, в том числе соавтором, в сравнение не попадают. Открытый Обозреватель скрывается, пока сравнение открыто, поэтому сравнение занимает всю ширину редактора.
Вид на каждой стороне перемещается колесиком мыши, перетаскиванием пустой области или тела группы таблиц либо перетаскиванием средней кнопкой мыши в любом месте этой стороны и масштабируется с помощью Ctrl + Wheel (Windows/Linux), ⌘ + Wheel (Mac) или жеста сведения пальцев. При масштабе 70% и меньше таблицы на ней сворачиваются так же, как на холсте, — см. Пометки на обеих сторонах.
Обе стороны доступны только для чтения, поэтому в документе ничего не изменяется. У каждой стороны свое выделение, и щелчок по таблице на ней выделяет таблицу только на этой стороне.
Закройте сравнение кнопкой Close в уведомлении Diff Viewer, которое появляется вместе со сравнением, или клавишей Escape.

Что сравнивается
Сравнивается все: таблицы, столбцы, индексы, внешние ключи, заметки и группы таблиц.
Каждый элемент сначала сопоставляется по идентификатору, поэтому при сравнении с более ранней версией того же файла, в которой идентификаторы сохраняются, переименованная таблица, столбец, индекс или группа таблиц остается одним элементом и указывается как переименованный.
Оставшиеся элементы сопоставляются один к одному по тому, что у них сохранилось: таблица или группа таблиц — по имени с учетом регистра; столбец или индекс — по таблице и имени; внешний ключ — по двум его таблицам и парам столбцов; заметка — по тексту, а затем по положению. Индекс без имени сопоставляется по столбцам, их порядку и направлению и по признаку уникальности, а группа таблиц без имени — по наибольшему числу общих таблиц.
Поэтому при сравнении с файлом из другого источника, например с диаграммой, заново построенной импортом SQL, переименованная таблица отображается как одна удаленная и одна добавленная.
Что считается изменением:
- Таблица: имя, комментарий, группа таблиц, положение и цвет.
- Столбец: имя, комментарий, тип данных, значение по умолчанию, Автоинкремент, первичный ключ, Уникальный, Не NULL и место в таблице. Перемещенными считаются только столбцы вне порядка, общего для обоих документов, поэтому добавление, удаление или перемещение одного столбца не помечает остальные.
- Индекс: имя, UNIQUE и столбцы с их порядком и направлением.
- Внешний ключ: пары столбцов, тип связи и действия ON DELETE и ON UPDATE.
- Заметка: текст, положение, размер и цвет.
- Группа таблиц: имя, входящие в нее таблицы, цвет, положение и размер.
Поэтому таблица, заметка или группа, которую только переместили или у которой изменили только размер или цвет, считается измененной. Положения и размеры сравниваются в целых пикселях, а порядок наложения и место, где линия связи примыкает к таблице, никогда не учитываются.
Дерево изменений
Список слева выглядит как дерево Обозревателя и содержит только то, что изменилось: папки Tables, Table Groups и Memos, каждая из которых отображается, только если в ней есть строка, а под таблицей — ее собственные Columns, Indexes и Foreign Keys. Внешний ключ указывается под своей дочерней таблицей, а у добавленной или удаленной таблицы внутри ничего не перечисляется.
Каждая папка показывает, сколько строк в ней содержится, и все папки и таблицы изначально развернуты.
Таблицы и группы таблиц перечисляются по имени без учета регистра. Заметки, а также столбцы, индексы и внешние ключи таблицы сохраняют порядок текущего документа, а удаленный элемент возвращается на то место, где он стоял. В строке заметки отображается первая строка ее текста, а в строке внешнего ключа — его дочерние столбцы, затем → с родительской таблицей и ее столбцами, например user_id → users(id). Пустое имя отображается как unnamed курсивом.
Каждая строка заканчивается буквой, и у строки с пометкой A, D, M или R имя окрашено в цвет этой буквы:
A, добавлено, зеленым: только в текущем документе.D, удалено, красным и зачеркнуто: только в сохраненном документе.M, изменено, янтарным: в обоих документах, с изменениями.R, переименовано, синим: в обоих документах, с новым именем. Переименование имеет приоритет над любым другим изменением, которое при этом все равно указывается во всплывающей подсказке.~, янтарным, стоит в конце каждой папки и каждой таблицы, указанной только из-за изменений внутри нее; их имена сохраняют обычный цвет.
Наведите указатель на имя в строке, чтобы увидеть всплывающую подсказку: статус (Added, Deleted, Modified, Renamed или Changed inside), затем по одной строке на каждое изменение, например Name: users → members или NN: ✗ → ✓. Текст приводится по первой строке, обрезанной после 40 символов, а пустое значение отображается как —. Всплывающая подсказка добавленного или удаленного элемента содержит только статус.
Поле Filter by name над деревом оставляет строки, текущее или сохраненное имя которых содержит введенный текст, без учета регистра. Таблица, имя которой совпадает, сохраняет все свои строки, а таблица, имя которой не совпадает, остается только с совпадающими строками. Фильтр, которому ничего не соответствует, оставляет дерево пустым.
Если два документа ничем не отличаются, в дереве отображается No changes.
Перетащите правый край дерева, чтобы сделать его шире или уже, от 200px до 480px, и дважды щелкните этот край, чтобы вернуть ширину 260px. Каждое сравнение открывается с деревом шириной 260px, а две стороны делят оставшуюся ширину поровну.
Перемещение по дереву с клавиатуры работает так же, как в дереве Обозревателя (см. Клавиши в Обозревателе), но здесь Escape в дереве или в поле Filter by name закрывает сравнение.
Переход к изменению
Щелкните строку либо нажмите Enter или Space, когда на ней фокус клавиатуры, чтобы перейти к ее элементу на каждой стороне, где он есть: к добавленному элементу — только на стороне текущего документа, к удаленному — только на стороне сохраненного документа, а к тому, что есть в обоих, — на обеих сторонах. Строка папки только сворачивает или разворачивает папку, как и стрелка в начале строки таблицы.
- Строка таблицы, столбца или индекса выделяет только таблицу.
- Строка внешнего ключа выводит в поле зрения обе его таблицы или дочернюю таблицу, если они слишком далеко друг от друга, чтобы поместиться вместе, выделяет дочернюю таблицу со столбцами внешнего ключа и подсвечивает линию связи — см. Как читать линию связи.
- Строка заметки выделяет заметку, а строка группы таблиц — группу. Если документ стороны скрывает заметку или группу, на этой стороне переход не выполняется.
Каждая сторона сдвигается по правилу из раздела Куда ведет переход с измерением по этой стороне, поэтому повторный щелчок по той же строке ничего не сдвигает.
Пометки на обеих сторонах
Обе стороны окрашивают текст, контуры и линии связи, но ничего не заливают. Добавленное выделяется зеленым и отображается только на стороне текущего документа, удаленное — красным и только на стороне сохраненного документа, а измененное (янтарным) и переименованное (синим) отображаются на обеих сторонах. Все неизмененное рисуется как обычно.
- Добавленная или удаленная таблица или группа таблиц обводится контуром соответствующего цвета, и ее имя принимает этот цвет. Добавленная или удаленная заметка обводится контуром.
- Добавленный или удаленный столбец в таблице, которая есть в обоих документах, окрашивает всю свою строку, а перемещенный столбец окрашивает всю свою строку в янтарный цвет. Внутри добавленной или удаленной таблицы ничего отдельно не помечается.
- Текст измененной ячейки становится янтарным: комментарий таблицы, комментарий, тип данных, значение по умолчанию, Автоинкремент, Уникальный или Не NULL столбца либо текст заметки. При изменении первичного ключа значок ключа столбца становится янтарным.
- У переименованной таблицы, столбца или группы таблиц имя отображается синим.
- Таблица, заметка или группа таблиц с изменением, у которого нет собственной ячейки, например с перемещением, новым размером или цветом, сменой группы или состава таблиц группы, обводится янтарным контуром.
- Добавленный, удаленный или измененный внешний ключ рисует свою линию связи соответствующим цветом. При наведении указателя на нее или при ее подсветке из строки дерева она рисуется обычным цветом наведения.
- Изменение индекса ничего не помечает ни на одной стороне; оно отображается только в дереве.
Каждая сторона следует Параметрам вида своего документа. Изменение в ячейке, которую эта сторона не рисует, отображается вместо этого на имени. Изменение столбца в ячейке, скрытой одним из Параметров вида, например Unique или Auto Increment (оба выключены по умолчанию), окрашивает имя столбца в янтарный цвет, как и изменение первичного ключа в строке, где не отображается значок ключа. Изменение комментария таблицы при выключенном параметре Table Comment окрашивает имя таблицы в янтарный цвет. Синий цвет переименования имеет приоритет над этим янтарным. Заметка или группа таблиц, которую скрывает ее документ, указывается в дереве, но не рисуется на этой стороне.
При масштабе 70% и меньше свернутые таблицы сохраняют контур. Имя сохраняет зеленый или красный цвет добавленной или удаленной таблицы либо синий цвет переименования, а в остальных случаях принимает янтарный цвет изменения комментария. Изменения столбцов не рисуются, пока вы снова не увеличите масштаб; в дереве они по-прежнему перечислены.