Перейти к основному содержимому

Логические имена

У таблицы и у каждого ее столбца помимо имени может быть логическое имя. Логическое имя — это то имя, которое читают люди, например Customer Name для CUST_NM. Само имя — это физическое имя, то, которое записывают Схема SQL и Генератор кода.
Режим отображения имен определяет, что из этого рисует холст ERD: имена, логические имена или и то и другое — см. Отображение имен.
Логическое имя также может дать своей таблице или столбцу физическое имя, сформированное по словам и терминам на вкладке «Словарь», — см. Формирование физических имен.
Столбец можно привязать к домену, т. е. к именованному типу данных с листа Domains вкладки «Словарь», например Name для VARCHAR(100), и тогда в столбце хранится тип данных домена — см. Ячейка домена.
Схема SQL может записывать каждое логическое имя в пустой комментарий — см. Логические имена в комментариях.

Отображение имен​

Существует три режима, и каждый по-своему рисует заголовок и строки таблицы:

  • Режим Physical Names, который используется в новой диаграмме, не рисует логических имен. Заголовок показывает имя таблицы и, пока View Option → Table Comment включен, ее комментарий, а каждая строка показывает свои ячейки в порядке столбцов.
  • Режим Logical Names рисует логическое имя на месте каждого имени: в заголовке и в каждой строке там, где в порядке столбцов стоит Name. Ячейка типа в строке может отображать домен столбца, как описано ниже.
  • Режим Both Names рисует логическое имя рядом с именем. Заголовок показывает логическое имя, затем имя, затем комментарий, а в каждой строке появляется ячейка Logical Name, которую порядок столбцов по умолчанию ставит непосредственно перед Name.

Вместо пустого логического имени, в том числе состоящего только из пробелов, отображается приглушенная замена. В режиме Logical Names это имя, нарисованное на его месте, или заполнитель table или column, если имя тоже пустое. В режиме Both Names это заполнитель logical.

В режиме Logical Names столбец, привязанный к домену с именем на листе Domains вкладки «Словарь», показывает в ячейке типа имя этого домена вместо своего типа данных. Все остальные столбцы показывают там свой тип данных.
Пока View Option → Domain включен, у домена есть собственная ячейка, а ячейка типа сохраняет тип данных, поэтому ни одна строка не показывает домен дважды — см. Ячейка домена.

Ширина каждой таблицы определяется ячейками, которые она рисует в текущем режиме, поэтому переключение режима меняет размеры таблиц и заново прокладывает их линии связи. Ни одна таблица не сдвигается.
При масштабе 70% и меньше таблица сворачивается до имени — см. Увеличение и уменьшение масштаба. В режиме Logical Names она показывает логическое имя, а пока его нет — приглушенное имя. В режиме Both Names она показывает логическое имя и под ним, на отдельной строке, имя, а пока логического имени нет — только имя.

Проверки словарей могут рисовать логическое имя или имя красным или янтарным цветом там, где они его помечают, — см. Пометки на холсте.

Переключение режима отображения​

Переключить режим можно в четырех местах, и в каждом из них перечислены Physical Names, Logical Names и Both Names, а текущий режим отмечен галочкой:

  • Кнопка Name View на панели инструментов холста между четырьмя нотациями связей и режимом дзен. На ней написан текущий режим и изображена стрелка вниз, а ее всплывающая подсказка: Name View. Щелчок открывает список над панелью инструментов, а выбор режима закрывает его.
  • Пункт Name View в контекстном меню холста сразу после View Option: подменю с тремя режимами. После выбора меню остается открытым.
  • Тот же список на панели инструментов вкладки «Визуализация» в режиме Flow после меню отображения строк — см. Панель инструментов.
  • Пункт Name View в Быстром поиске: он идет сразу после Tab и отображается только на вкладке ERD. Его подменю открывается с подсветкой на текущем режиме.

Переключение режима отображения имен на Logical Names с панели инструментов холста, на Both Names из меню холста и обратно на Physical Names, при этом ordered_at без логического имени сначала приглушен, а затем отображается как заполнитель logical

Все четыре места задают один и тот же режим. На верхней панели инструментов кнопки для него нет.

Переключение сохраняет выделение и не записывается в историю изменений.
Если новый режим не рисует ячейку в фокусе, фокус переходит на ячейку, нарисованную на ее месте: имя и логическое имя заменяют друг друга, как и тип с доменом. Поле редактирования, открытое на этой ячейке, закрывается. Включение или выключение View Option → Domain перемещает фокус так же.
Пока блокировка Name View включена, как в новой диаграмме, переключение меняет только ваш собственный экран, а файл сохраняет режим, который был в момент блокировки. При выключенной блокировке файл сохраняет режим, на который вы переключаетесь, — см. Блокировка.

Ввод логического имени​

Режим Physical Names не рисует логических имен, поэтому, чтобы ввести логическое имя на холсте, переключитесь в режим Logical Names или Both Names:

  • В режиме Logical Names ячейки имени в заголовке и строках содержат логические имена, поэтому в этом режиме физическое имя на холсте отредактировать нельзя.
  • В режиме Both Names ячейки логического имени содержат логические имена, а ячейки имени — физические.

Ячейка логического имени редактируется так же, как любая другая ячейка: начните с Enter или двойного щелчка — см. Редактирование таблиц. Если поле редактирования открыто на пустом логическом имени, оно показывает в качестве заполнителя то, что рисовала ячейка: имя в режиме Logical Names, logical в режиме Both Names.
Ввод текста записывает только логическое имя. Физическое имя формируется из него, когда поле редактирования закрывается (Enter, Tab, Escape или щелчок в другом месте) на измененном логическом имени, отдельным шагом отмены после вашего ввода. Физическое имя, которое вы написали сами, остается без изменений — см. Формирование физических имен.

Tab и Shift + Tab проходят по ячейкам, которые рисует режим, в их порядке — см. Клавиша Tab:

  • В режиме Logical Names — логическое имя заголовка, затем его комментарий, затем ячейки каждой строки в порядке столбцов, где логическое имя стоит на месте имени.
  • В режиме Both Names — логическое имя, имя и комментарий заголовка, затем ячейки каждой строки в порядке столбцов, по умолчанию начиная с ячейки Logical Name.

Alt + Enter (Windows/Linux) или ⌥ + Enter (Mac) добавляет столбец и переводит фокус на его ячейку имени, которая в режиме Logical Names содержит его логическое имя.

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

Автодополнение терминов​

Пока вы вводите текст в ячейке логического имени, в заголовке или в строке, список под ячейкой предлагает термины, имена которых начинаются с этого текста, без учета регистра и пробелов перед ним. Термин — это целое логическое имя, которое хранится на листе Terms вкладки «Словарь» вместе с физическим именем и доменом, которые он дает. Список показывает до восьми терминов, отсортированных по имени, и подсвечивает в них введенный текст. Если ни один термин так не начинается, списка нет.

Добавление столбца с помощью ⌥ + Enter в режиме Both Names, выбор Order Amount в списке терминов под логическим именем для заполнения ORD_AMT, DECIMAL(10,2) и домена Amount, затем ввод Order Date, для которого слова дают имя ORD_DT, когда Enter закрывает поле редактирования

  • Сначала ничего не подсвечено. ↑ и ↓ перемещают подсветку, переходя по кругу на обоих концах, а у подсвеченного термина отображается клавиша Enter.
  • Enter на подсвеченном термине записывает его имя как логическое имя и завершает редактирование. Если физическое имя не является вашим собственным, тот же шаг отмены сразу формирует физическое имя по термину, а столбцу еще и дает домен термина. Enter, когда ничего не подсвечено, завершает редактирование и сохраняет введенный текст.
  • Щелчок по термину записывает его так же и оставляет поле редактирования открытым.
  • Escape, пока отображается список, закрывает только список, а следующее нажатие Escape завершает редактирование.
  • Tab переходит дальше с текстом в том виде, в каком он введен, а физическое имя формируется из него при закрытии поля редактирования.
  • Пока в методе ввода идет набор, стрелки и Enter относятся к набору.

Что термин дает таблице или столбцу, описано в разделе Формирование физических имен.

Ячейка домена​

View Option → Domain, выключенный по умолчанию, в любом режиме добавляет в каждую строку ячейку домена там, где в порядке столбцов стоит Domain (по умолчанию сразу после DataType), — см. Параметры вида таблиц.
Ячейка показывает имя домена, к которому привязан столбец, а для столбца, не привязанного ни к одному домену из листа Domains, — приглушенный заполнитель domain.

Включение View Option → Domain, выбор Amount в ячейке домена столбца PAY_AMT после сужения списка вводом amo, изменение Data Type домена Amount на DECIMAL(12,2) на вкладке «Словарь», после чего столбец меняется вместе с ним, затем ввод NUMERIC(12,2) в столбец, который отвязывает его от домена

Enter или двойной щелчок открывает над ячейкой список выбора: пустое поле с текстом ячейки в качестве заполнителя, а под ним None, затем все домены с именем из листа Domains в порядке листа. Сначала подсвечен привязанный домен или None.

  • Ввод текста оставляет в списке только домены, имена которых содержат этот текст без учета регистра, убирает None и подсвечивает первый домен. ↑ и ↓ перемещают подсветку.
  • Enter привязывает подсвеченный домен, а щелчок — тот, по которому щелкнули. И то и другое одним шагом отмены дает столбцу тип данных домена и завершает редактирование. None отвязывает столбец от домена и сохраняет его тип данных.
  • Введенный текст никогда не записывается в столбец. Пока на листе Domains нет ни одного домена с именем, списка нет, а Enter завершает редактирование, ничего не записывая.

В режиме Logical Names при выключенном View Option → Domain ячейка типа, показывающая имя домена, открывает этот список выбора, а ячейка, показывающая тип данных, — поле редактирования типа данных — см. Автодополнение типа данных. Чтобы привязать домен к столбцу, у которого его нет, включите ячейку домена.
Привязанный столбец содержит тип данных своего домена и следует за ним, когда тип домена меняется, а ввод другого типа в его ячейку DataType отвязывает его от домена — см. Домены и типы данных.

За пределами холста​

Большинство других мест, где называется таблица или столбец, тоже следуют режиму отображения имен:

  • Режим Physical Names показывает имя.
  • Режим Logical Names показывает логическое имя, а пока логическое имя пустое — имя, приглушенное там, где это место может его приглушить.
  • Режим Both Names показывает логическое имя, а после него имя: приглушенное в строке текста, на второй строке в подписи графа и в скобках там, где оба имени должны поместиться в один текст, например Member (member). Таблица или столбец без логического имени показывает только свое имя.

Список, отсортированный по имени, например таблицы в Обозревателе или строки # в Быстром поиске, в любом режиме остается отсортированным по имени, а не по логическому имени.

Места, которые следуют режиму отображения:

Несколько мест показывают имена независимо от режима: строки индексов и внешних ключей в Обозревателе, Keys на вкладке Indexes окна «Свойства таблицы», New column: <name> в окне «Сопоставить столбцы» и расположение, указанное рядом со строкой @ или : в Быстром поиске.

Просмотр различий, Путешествие во времени, предварительный просмотр Force в Автоматическом размещении и окно Export image открываются в вашем текущем режиме отображения имен, какой бы режим ни был сохранен в файле. Каждый из них сохраняет этот режим, пока открыт.
Каждое Автоматическое размещение, а также Import или Import and Add Схемы SQL, GraphQL, DBML или AML размещают таблицы с той шириной, которую они имеют в вашем режиме.

Поиск по логическому имени​

Логические имена находятся в любом режиме отображения имен, в том числе в режиме Physical Names, где холст их не рисует:

  • Поиск и замена ищет их как отдельный вид текста, Logical names, одинаково для таблиц и столбцов, и этот вид включен при первом открытии поиска. Замена логического имени формирует из него физическое имя так же, как его ввод.
  • В Быстром поиске # находит таблицу по ее имени или логическому имени, а @ находит столбец по любому из них, причем рядом с совпадением по логическому имени отображается Logical name. Часть запроса @ до ., относящаяся к таблице, тоже совпадает как с именем, так и с логическим именем таблицы.

Переключение режима отображения имен меняет то, как называются результаты, но никогда не меняет то, что найдено.

Соавторы​

В сеансе совместного редактирования логические имена и привязки к доменам доходят до каждого редактора, как и любая другая правка.
Пока блокировка Name View включена, каждый редактор сохраняет собственный режим, а переключение отображается только в том редакторе, где оно сделано. Пока она выключена, переключение в любом редакторе, кроме редакторов только для чтения, переключает все редакторы — см. Блокировка, где также описано, что включение или выключение блокировки делает с режимом каждого редактора.
Если ваш режим не рисует ячейку, которая в фокусе у участника, его цвет отображается на ячейке, которую ваш режим рисует на ее месте: ячейка имени в режиме Physical Names отображается на вашей ячейке логического имени в режиме Logical Names и наоборот, а ячейка типа и заменяющий ее домен соотносятся так же.

Агент для программирования, работающий через MCP-сервер, задает логические имена и привязывает домены независимо от вашего текущего режима, и у него нет инструмента, переключающего режим отображения имен, — см. Словари и Настройки.

Режим только для чтения​

В редакторе с атрибутом readonly работают все способы выбора режима отображения имен, а переключение меняет только этот экран, какой бы ни была блокировка.
Логические имена и домены там редактировать нельзя, поэтому ни список терминов, ни список выбора домена не открываются, и ни один из пунктов Derive Physical Name Again и Derive Physical Names Again не предлагается. View Option → Domain там ничего не меняет, как и любой параметр вида.