跳至主要內容

字典

「字典」索引標籤以三個字典存放圖表的命名標準,每個字典都位於一個可像試算表一樣編輯的工作表上:

  • Domains:具有名稱的資料類型,例如代表 VARCHAR(100) 的 Name。連結到定義域的欄位會採用該定義域的資料類型。
  • Words:組成邏輯名稱的標準詞彙,每個詞彙都附有物理名稱中代表它的英文縮寫,例如 Customer 和 CUST。
  • Terms:完整的邏輯名稱,每個術語都附有它所提供的物理名稱和定義域,例如 Customer Name 與 CUST_NM。

資料表或欄位的邏輯名稱會透過這些字典產生其物理名稱,欄位的術語還可以將該欄位連結到定義域,請參閱產生物理名稱。
第四個工作表 Checks 會列出字典在圖表的名稱與類型中,以及在字典本身中發現的問題,例如邏輯名稱中的禁用詞,請參閱「檢查」工作表。

開啟索引標籤​

在工具列中切換至 Dictionary 索引標籤(位於 Code Generator 和 Settings 之間、帶有書本圖示的按鈕),或在快速搜尋中選擇 Tab 下的 Dictionary。
它也可以是圖表開啟時所在的索引標籤,請參閱鎖定中的 Canvas Type。

在選擇其他工作表之前,此索引標籤都會開啟在 Domains 工作表上。
每次開啟時,工作表都會恢復離開時的選取範圍和捲動位置,第一次開啟時則會選取其第一個儲存格。其網格會取得鍵盤焦點,因此輸入文字或按方向鍵都會立即生效。

顯示的工作表,以及每個工作表的搜尋、選取範圍、捲動位置和欄寬,都只屬於您自己。
這些都不會儲存在檔案中、記錄在復原歷程記錄中,或與協作者共用。只要編輯器保持開啟,這些狀態就會保留,切換索引標籤或在同一個編輯器中載入其他文件時也是如此。

工作表​

頂端的功能列包含 Domains、Words、Terms 和 Checks 四個工作表按鈕,目前顯示的工作表的按鈕會呈現按下的樣子。每個按鈕的名稱旁都會顯示一個計數:該工作表所含的列數(無論搜尋顯示哪些列),在 Checks 上則是檢查的項數,並依其等級著色,請參閱「檢查」工作表。
接著是搜尋輸入框,請參閱搜尋。在 Domains、Words 和 Terms 上(唯讀編輯器中除外),功能列的結尾有四個工具:Add Row、Delete Rows、Import CSV 和 Export CSV,請參閱新增與刪除列和匯入與匯出 CSV。
在狹窄的窗格中或使用文字較長的顯示語言時,功能列會換行成多行,讓每個按鈕都能按到。

網格下方的狀態列會計算搜尋後留下的列數,例如 4 rows,並在選取範圍涵蓋任何列時顯示涵蓋的列數,例如 1 selected。兩個範圍共有的列只算一次,因此該數字就是 Delete Rows 會移除的列數。
左側的列號依工作表顯示的順序從 1 開始計算各列。唯讀儲存格(也就是 Checks 上的每個儲存格和唯讀編輯器中的每個儲存格)會以灰色底繪製,但被檢查標示的儲存格除外。
空的 Domains、Words 或 Terms 工作表會顯示 Import a CSV file or add a row,唯讀編輯器中除外。

各工作表的欄依序如下:

工作表欄
DomainsDomain、Category、Data Type、Description
WordsWord、Abbreviation、English Name、Description、Synonyms、Forbidden Words
TermsTerm、Physical Name、Domain、Description、Synonyms
ChecksType、Target、Detail

各儲存格的作用:

  • 定義域的 Data Type 以欄位類型的形式撰寫,例如 VARCHAR(100) 或 NUMERIC(15,2),連結到該定義域的每個欄位都會採用此類型,請參閱定義域與資料類型。
  • 詞彙的 Abbreviation 是物理名稱中代表該詞彙的文字,請參閱依詞彙組成。
  • 詞彙的 Synonyms 和 Forbidden Words 會列出表示同一事物的其他詞彙,以逗號分隔。每個項目都會去除前後空白,空的項目會被捨棄,與該詞彙本身相同的項目會被忽略。使用其中某個詞的邏輯名稱不會組成物理名稱,Checks 工作表則會標出該邏輯名稱,並指出應改用的詞彙,請參閱各項檢查找出的問題。
  • 術語的 Term 是完整的邏輯名稱,其 Physical Name 則是該邏輯名稱所提供的名稱,請參閱依術語產生。
  • 術語的 Domain 會顯示其連結的定義域名稱,未連結任何定義域或連結的定義域已被移除時則為空的,請參閱術語的定義域。
  • Category、English Name、各個 Description 和術語的 Synonyms 都是備註。它們不會改變任何內容,也沒有任何檢查會讀取它們。

在由右至左的顯示語言中,功能列、網格選單和狀態列會鏡像翻轉,而工作表和術語的定義域清單則維持由左至右。

產生物理名稱​

字典可以依資料表或欄位的邏輯名稱,為其提供物理名稱,也就是結構描述 SQL 和程式碼產生器所寫出的名稱。會先尋找 Term 即為該邏輯名稱的術語;找不到時,則由詞彙的英文縮寫組成名稱。
例如,有詞彙 Customer(CUST)、Name(NM)、Number(NO)、Order(ORD)和 Date(DT),以及物理名稱為 CUST_NO、定義域為 Number(其資料類型為 INT)的術語 Customer Number 時:

  • 邏輯名稱 Customer Number 會將欄位命名為 CUST_NO、將其連結到 Number,並為其指定類型 INT。
  • Order Date 會組成 ORD_DT。
  • 邏輯名稱為 Customer 的資料表會命名為 CUST。

Words 工作表和 Terms 工作表都是空的時,不會產生任何名稱。

何時產生名稱​

物理名稱會在寫入邏輯名稱時產生:

  • 在畫布上,當邏輯名稱儲存格的編輯器以 Enter、Tab、Escape 或按一下其他位置關閉,且關閉時的邏輯名稱與開啟時不同時。輸入的每個按鍵都只會寫入邏輯名稱,請參閱輸入邏輯名稱。
  • 從儲存格下方的清單中選擇術語時,會立即產生,請參閱術語名稱自動完成。
  • 貼上寫入邏輯名稱儲存格時,請參閱複製/貼上欄位。
  • 尋找與取代取代邏輯名稱時,無論是取代一個相符項目還是全部取代。
  • 程式碼代理程式設定邏輯名稱時。

只有在物理名稱為空的,或其本身就是由字典產生時,才會產生名稱,請參閱自行撰寫的名稱。
選擇術語、貼上或取代會將邏輯名稱及其產生的內容寫入為一個復原步驟。在畫布上,編輯器關閉時產生的名稱是輸入之後另一個獨立的步驟:第一次復原會撤回產生的名稱,以及術語帶來的定義域和類型,並保留您輸入的邏輯名稱。

之後不會自動重新產生任何名稱。詞彙新的 Abbreviation、術語新的 Physical Name 或 Domain,以及新的詞彙或術語,都不會改變已產生的名稱;若要更新,請使用重新產生物理名稱。定義域的 Data Type 是例外:其變更會立即套用到其欄位。

依術語產生​

會先在 Terms 工作表中搜尋 Term 與邏輯名稱相同的術語。前後的空格和 Unicode 組合形式會被忽略,但會區分大小寫,因此 customer number 不會與 Customer Number 相符。若兩個術語同名,以工作表上的第一個為準。

  • 術語會提供其 Physical Name;若該值為空的,則提供其詞彙所組成的名稱(如下所述),前提是詞彙能組成名稱。
  • 對於欄位,只要 Domains 工作表列出術語的 Domain,術語也會將欄位連結到該定義域,讓欄位採用該定義域的資料類型,請參閱連結欄位。即使術語未提供名稱也是如此。沒有定義域的術語不會解除任何連結。
  • 資料表只會採用術語的物理名稱。

依詞彙組成​

沒有相符的術語時,由詞彙組成名稱:

  1. 邏輯名稱會在空格、_、-、· 和 / 處切分,且任何詞彙都不會跨越切分處。
  2. 每個片段都從左側開始讀取,在每個位置取 Words 工作表所列出(作為 Word、同義詞或禁用詞)的最長文字,且絕不回頭。有詞彙 가입、가입일 和 일자 時,가입일자 會讀取為 가입일 和 자,使 자 成為未登錄的詞彙,而 가입 일자 則讀取為 가입 和 일자。會區分大小寫:member 不是詞彙 Member。
  3. 物理名稱由每個詞彙的 Abbreviation 依輸入的原樣以 _ 連接而成,例如 ORD_DT。若兩個詞彙同名,由工作表上的第一個提供英文縮寫。名稱沒有長度限制,程式碼產生器的 Table Name Case 和 Column Name Case 也不會影響名稱。

組成名稱採取全有或全無的方式。只要有任何片段是同義詞、禁用詞或沒有任何詞彙列出的文字,或者某個詞彙的 Abbreviation 為空的,就不會組成名稱,物理名稱也會保持不變。

自行撰寫的名稱​

字典只會在物理名稱為空的,或其本身就是由字典填入時,才會填入物理名稱。編輯器會為每個資料表和欄位記住這一點,但畫布上不會顯示。

  • 您寫入的名稱會成為自行撰寫的名稱:包括在名稱儲存格中輸入、以尋找與取代取代資料表或欄位名稱、貼上覆蓋欄位的名稱儲存格,以及程式碼代理程式的重新命名。之後寫入的邏輯名稱不會改變該名稱,只會寫入邏輯名稱,也不會連結任何定義域。
  • 清除名稱會將其交還給字典,因為空的名稱一律會由字典產生。
  • 不會產生任何名稱的邏輯名稱會讓物理名稱及其狀態保持原樣:空的名稱仍然是空的,由字典產生的名稱則保留其名稱,且仍由字典產生。
  • 新的資料表或欄位一開始名稱為空的,因此其第一個邏輯名稱會產生其名稱。關聯新增的外鍵欄位會依其鍵命名,並算作自行撰寫的名稱,請參閱外鍵欄位名稱。
  • 以結構描述 SQL、GraphQL、DBML 或 AML 的 Import 或 Import and Add 匯入的名稱,以及推出「字典」索引標籤之前的版本所建立之圖表中的名稱,都算作自行撰寫的名稱,因此之後對其寫入的邏輯名稱不會產生任何名稱。
  • 資料表的副本、以拖曳控點移到另一個資料表的欄位、貼上的已複製資料表,以及 JSON 檔案的 Import and Add,都會保留每個名稱的狀態。以新欄位的形式貼上到所選資料表的欄位算作自行撰寫的名稱,除非貼上的名稱為空的且其邏輯名稱會產生名稱。
  • 重新產生物理名稱會將自行撰寫的名稱交還給字典,包括匯入的名稱。

兩個欄位同名​

當同一資料表的另一個欄位已經使用某個欄位將要產生的名稱時,該欄位不會產生任何名稱。它會保留其名稱、狀態和定義域連結,只會寫入其邏輯名稱。比較名稱時不區分大小寫,並忽略前後的空格,與外鍵欄位名稱的比較方式相同。
當一次變更會讓兩個欄位得到相同的名稱時(對資料表執行 Replace All 或 Derive Physical Names Again 時可能如此),由資料表中的第一個欄位取得該名稱。
例如,在以 MBR_NO 為鍵的 members 上建立自我參照時,會新增 MBR_NO_2,它會複製邏輯名稱 Member Number。Derive Physical Names Again 會將其命名為 MBR_NO,但該名稱已由鍵使用,因此它會保留 MBR_NO_2。
資料表沒有這樣的規則:兩個資料表可以產生相同的名稱。

重新產生物理名稱​

在變更詞彙的 Abbreviation 或術語的 Physical Name 或 Domain 之後使用 Derive Physical Names Again,因為這些變更本身不會重新命名任何項目。它會將其涵蓋的名稱交還給字典,並依上述規則重新產生,包括您自行撰寫的名稱。它只在 ERD 索引標籤中提供,唯讀編輯器中則不提供:

  • 資料表的右鍵選單,緊接在 Focus on this table 或 Focus on selected tables 之後。當該資料表是兩個以上已選取資料表之一時,無論在資料表的哪個位置按滑鼠右鍵,Derive Physical Names Again 都會涵蓋所有已選取的資料表。否則,在欄位的列上按滑鼠右鍵會提供只針對該欄位的 Derive Physical Name Again,在表頭上按滑鼠右鍵則會提供針對資料表名稱和每個欄位的 Derive Physical Names Again。
  • 畫布的右鍵選單,緊接在 Name View 之後:Derive Physical Names Again,針對圖表中的每個資料表和欄位。圖表中沒有資料表時,此項目不會出現在選單中。
  • 快速搜尋,以列的形式分別針對焦點欄位、焦點資料表、所選資料表和整個圖表提供。

在 Words 工作表上將 Number 的英文縮寫從 NO 改為 NUM,圖表上的物理名稱仍為 MBR_NO 和 PAY_NO,接著從畫布選單執行 Derive Physical Names Again,將它們變為 MBR_NUM 和 PAY_NUM,而由其術語提供的 ORD_NO 則保持不變

涵蓋範圍內每個具有邏輯名稱的資料表和欄位都會重新產生名稱。欄位也會採用其術語提供的定義域,並隨之採用該定義域的類型;關聯資料類型同步開啟期間,此類型會沿著關聯擴散。
沒有邏輯名稱的資料表或欄位,以及新名稱已由同一資料表的另一個欄位使用的欄位,都不會受到影響,請參閱兩個欄位同名。這些項目都會保留其名稱和狀態(無論是自行撰寫的還是由字典產生的),欄位也會保留其定義域連結。
目前不會產生任何名稱的邏輯名稱會讓物理名稱保持原樣,但會將其交還給字典,因此您下一次寫入的邏輯名稱會產生該名稱。
無論變更了多少名稱、連結和類型,它都算作一個復原步驟。只有在沒有變更任何內容時,它才不會記錄任何步驟,而將自行撰寫的名稱交還給字典也算作變更,即使該名稱已經是字典所提供的名稱也是如此。

術語本身的 Physical Name 不會依變更後的詞彙重新組成,因此請先編輯該術語,再重新產生。

定義域與資料類型​

連結到定義域的欄位會採用該定義域的 Data Type。連結欄位會立即為其指定該類型。
定義域的 Data Type 變更時,無論是在 Domains 工作表上編輯、貼上或匯入,還是由協作者或程式碼代理程式變更,連結到該定義域的每個欄位都會在同一個步驟中採用新的類型。關聯資料類型同步開啟期間,這些變更都會像手動輸入的類型變更一樣沿著關聯繼續傳遞;關閉時,只有已連結的欄位會變更。
重新命名定義域只會變更欄位的定義域儲存格所顯示的名稱。

在 Domains 工作表上所做的類型變更會在該工作表上復原,並連同其指定的欄位類型一起復原,請參閱字典工作表。
在 ERD 索引標籤上,將欄位重新連結到定義域,或恢復已連結到定義域之欄位的復原或重做,會為該欄位指定該定義域目前的類型。恢復為其他類型的復原或重做則會解除該欄位的連結。

連結欄位​

以下方式會將欄位連結到定義域:

  • 在欄位的定義域儲存格(由 View Option → Domain 顯示)中,或在 Logical Names 中代替它的類型儲存格中選擇定義域,請參閱定義域儲存格。
  • 其術語提供定義域的邏輯名稱,請參閱依術語產生。這只會在產生名稱時發生,因此不適用於自行撰寫的名稱,也不適用於產生的名稱已由另一個欄位使用的欄位。
  • Derive Physical Name Again 或 Derive Physical Names Again,它們會連結涵蓋範圍內每個欄位之術語的定義域。
  • 關聯:外鍵欄位會複製其鍵的定義域,以及其類型和邏輯名稱,請參閱識別關聯。若鍵的副本得到其他類型(例如 serial 鍵的副本),則不會傳遞定義域。
  • 建立其資料表的副本,或以拖曳控點將其移到另一個資料表,這兩者都會保留連結。貼上已複製的資料表或欄位時,只有在此圖表列出該定義域,且該定義域的類型仍與所複製欄位的類型相同時,才會保留連結,因此從其他圖表複製的內容貼上後不會連結,請參閱複製/貼上資料表與備忘錄。Import and Add 不會連結任何欄位。
  • 將定義域的名稱貼上到定義域儲存格中,請參閱複製/貼上欄位。

解除連結​

  • 在已連結欄位的 DataType 儲存格中輸入類型或接受建議時,只要其類型與定義域的類型不同,就會解除該欄位的連結,且欄位會保留您輸入的類型,請參閱資料類型自動完成。重新輸入定義域的類型不會再次連結;請改為在其定義域儲存格中選擇該定義域。貼上覆蓋 DataType 儲存格和程式碼代理程式變更類型,也會以相同方式解除連結。
  • 「關聯資料類型同步」開啟期間,類型變更所傳遞到的每個欄位,只要其新類型與自身定義域的類型不同,就會在同一個步驟中解除連結,例如連結到自己定義域的外鍵。對應欄位對話方塊也會以相同方式,解除其變更類型之欄位的連結。
  • 在定義域儲存格中選擇 None 會解除欄位的連結,並保留其類型。
  • 變更或清除術語的 Domain,或移除術語,都不會變更任何欄位。

移除定義域​

移除定義域的列後,其欄位會保持原本的類型,連結也會保留。這些欄位不會顯示任何定義域,且只要 Domains 工作表仍有定義域,Checks 工作表就會為每個這類欄位列出 Unknown domain。在 Domains 工作表上復原該移除操作後,連結會再次顯示。
在該定義域不存在期間,在這類欄位中輸入與該定義域不同的類型會永久解除其連結,在其定義域儲存格中選擇 None 也是如此。
儲存時,檔案會省略這些連結,因此重新開啟圖表後,這些欄位都是未連結的。

連結到已移除定義域的術語會顯示空的 Domain 儲存格,並標示為 Unknown domain。在該儲存格上按 Delete 或 Backspace 即可解除連結,請參閱術語的定義域。

「檢查」工作表​

Checks 工作表會列出字典的檢查在字典本身以及圖表的資料表和欄位中找出的問題。這些檢查只會讀取:不會變更任何內容。
每項檢查只會在其讀取的工作表中有列時執行,詞彙相關的檢查則只會在 Words 工作表中有具名稱的詞彙時執行,因此字典為空的圖表不會列出任何內容。

在 Logical Names 中,Customer Num 以紅色繪製、Order Stat 以琥珀色繪製,Checks 工作表以紅色計數列出它們的三項檢查,在 Forbidden word 列上按兩下即回到圖表上的 Customer Num,再將其重新輸入為 Member Number 後只剩一項檢查

其三個欄都是唯讀的:

  • Type 指出檢查的名稱,請參閱各項檢查找出的問題。
  • Target 以名稱指出詞彙、術語、定義域或資料表,並以 table.column 指出欄位,其中的資料表和欄位依名稱顯示的方式命名,目前的顯示方式未顯示名稱時則為 unnamed。
  • Detail 會顯示檢查找到的內容,並在 → 之後顯示字典建議改用的內容(多個時以逗號連接),例如 멤버 → 회원。空的一側會顯示為 —,例如 — → NUMERIC(15)。

詞彙的檢查排在最前面,接著是術語和定義域的檢查,然後逐一列出各資料表的檢查,每個資料表之後緊接著其欄位的檢查。
清單會隨每次編輯生效而即時更新(包括協作者和程式碼代理程式的編輯),也會隨每次切換「名稱顯示」而更新。
只要有任何檢查為錯誤,Checks 按鈕的計數就會顯示為紅色;所有檢查都是警告時顯示為琥珀色;沒有任何檢查時則以次要色彩顯示。

這些列無法編輯、新增、刪除、排序、匯入或匯出:功能列不會顯示任何工具,按滑鼠右鍵不會開啟網格選單,復原和重做也不會有任何作用。搜尋、選取和複製的運作方式與其他工作表相同。

在列上按 Enter 或按兩下,即可前往該列所指的項目:

  • 詞彙、術語或定義域:索引標籤會顯示其工作表,並選取檢查所讀取的儲存格(名稱或術語的 Domain),且該列會顯示在可見範圍的最上方。若工作表的搜尋隱藏了該列,搜尋會被清除。已被移除的列不會前往任何位置。
  • 資料表或欄位:會切換到 ERD 索引標籤,只選取該資料表,並讓檢查所讀取的儲存格取得焦點。該儲存格是名稱、邏輯名稱或定義域儲存格;若該列未繪製該儲存格,則是代替它繪製的儲存格。畫布會取得鍵盤焦點,檢視會依跳至目標時的落點中的規則移動。

在欄標題、欄邊緣、捲軸上或列的下方按兩下,不會前往任何位置。
程式碼代理程式會使用 erd_list_checks,以相同的順序列出相同的檢查,請參閱字典檢查。

其他三個工作表會以淡色底上的紅色或琥珀色文字,標示檢查所讀取的儲存格(名稱或術語的 Domain):

  • 紅色:與同一工作表另一列相同的名稱、連結到已移除定義域的術語 Domain,以及使用禁用詞的 Term。
  • 琥珀色:使用同義詞或未登錄詞彙的 Term。

儲存格會採用其等級中較醒目的一個。這些標示在唯讀編輯器中也會顯示,而 Checks 工作表本身不會著色。關於 ERD 畫布上的標示,請參閱畫布上的標示。

各項檢查找出的問題​

Type等級找出的問題Detail 範例
Duplicate name錯誤同一工作表的另一列也有的 Word、Term 或 Domain。每一列都會列出。Member
Unknown domain錯誤在 Domains 工作表仍有定義域時,仍連結到已移除定義域的欄位或術語已移除定義域的名稱
Forbidden word錯誤邏輯名稱或 Term 中,某個詞彙在其 Forbidden Words 中列出的片段커스터머 → 고객
Unregistered word警告資料表或欄位的邏輯名稱中,或 Term 中,沒有任何詞彙列出的片段자
Synonym警告某個詞彙在其 Synonyms 中列出的片段멤버 → 회원
Physical name mismatch警告邏輯名稱與某個術語相符,但物理名稱不是該術語所提供之名稱的資料表或欄位mbr_no → MBR_NO
Domain type mismatch警告DataType 不是其所連結定義域之 Data Type 的欄位INT → NUMERIC(15)
  • 比較名稱時會去除前後空白並區分大小寫,因此 Member 和 member 是兩個不同的名稱,且空的名稱絕不會被視為重複。工作表會拒絕讓兩列同名的編輯,因此 Duplicate name 只會出現在兩次編輯交錯的情況下(例如兩位協作者同時為列命名),或出現在於其他地方編輯過的檔案中。
  • 詞彙相關的檢查會以與依詞彙組成相同的方式讀取名稱,並針對每個名稱,將每個不同的片段各列出一次。Forbidden word 和 Synonym 會建議列出該片段的詞彙。
  • Physical name mismatch 會將去除前後空白的名稱與術語的 Physical Name 比較,術語沒有 Physical Name 時則與其詞彙所組成的名稱比較,術語未提供任何名稱時則不會回報。複製了其鍵之邏輯名稱的外鍵欄位,只要其自身名稱與術語的名稱不同,就會出現此檢查,例如 members_id → MBR_ID。Derive Physical Name Again 可以修正此問題,除非另一個欄位已使用該名稱。
  • Domain type mismatch 絕不會因在單一編輯器中的編輯而產生,因為已連結的欄位最終一定會採用其定義域的類型。它可能發生在某位協作者連結欄位、而另一位同時變更該定義域的類型時,或出現在於其他地方寫入的檔案中。在欄位的定義域儲存格中再次選擇該定義域,即可為欄位指定其類型,選擇 None 則會解除連結。連結到已移除定義域的情況只會顯示為 Unknown domain。

畫布上的標示​

ERD 畫布會以檢查的顏色顯示被檢查標出的名稱:

  • 邏輯名稱儲存格(位於表頭或欄位的列中)在其邏輯名稱使用禁用詞時為紅色;否則,在使用同義詞或 Words 工作表中沒有的詞彙時為琥珀色。
  • 物理名稱儲存格(位於表頭或列中)在與其邏輯名稱相符的術語提供不同的物理名稱時為琥珀色。

只有這兩種儲存格會被標示,定義域儲存格和 DataType 儲存格絕不會被標示,因此欄位的 Unknown domain 和 Domain type mismatch 只會顯示在 Checks 工作表上。
儲存格只會依其繪製的內容被標示:Physical Names 只能標示物理名稱,Logical Names 只能標示邏輯名稱,而 Both Names 會依各儲存格自己的檢查標示每個儲存格,請參閱名稱顯示。空白的儲存格會保留其預留位置文字的顏色,空的字典則不會標示任何內容。
在有顏色的資料表群組中,資料表表頭上的標示只有在群組顏色上仍清晰可讀時才會保留其顏色;否則,名稱會採用表頭本身的黑色或白色。

這些標示會顯示在 ERD 畫布、時光旅行和自動版面配置的預覽中,在唯讀編輯器中也是如此。「視覺化」索引標籤、差異檢視器的兩側和匯出的圖片則不會繪製任何標示。
無論變更的是名稱,還是詞彙、術語或定義域,標示都會隨每次變更即時更新。

搜尋​

搜尋輸入框會顯示 Search,並出現在全部四個工作表上,在唯讀編輯器中也是如此。每個工作表都有各自的搜尋。
當搜尋的其中一個儲存格包含該文字時,該列即為相符,比對時不區分大小寫,並忽略 Unicode 組合形式和搜尋字串前後的空格。相符項目絕不會跨越兩個儲存格。搜尋的儲存格如下:

  • Domains:Domain、Data Type 和 Description。
  • Words:Word、Abbreviation、English Name 和 Description。
  • Terms:Term、Physical Name 和 Description。
  • Checks:全部三個欄,依其在顯示語言中顯示的文字搜尋。

新的搜尋會將選取範圍移到第一個儲存格,並捲動到最上方。
輸入框中有文字時,具有工具提示 Clear search 的 x 按鈕會清空輸入框,並將插入點留在輸入框中。在輸入框中按 Escape 也會將其清空。
在輸入框中,Ctrl + Z (Windows/Linux) 或 ⌘ + Z (Mac) 會復原您輸入的文字,而不是工作表,且新增與刪除列中的列按鍵會作為文字按鍵。
Add Row 和插入列會先清除搜尋,因為空白的列不會與任何搜尋相符。匯入則會保留搜尋。

選取與移動​

網格的選取方式與試算表相同:

  • 按一下可選取一個儲存格,拖曳可選取一個範圍,拖曳到工作表邊緣時會捲動。Shift + click 會從作用中儲存格延伸選取範圍,Ctrl + click (Windows/Linux) 或 ⌘ + click (Mac) 則會新增另一個範圍。
  • 按一下欄標題會選取該欄,按一下列號會選取該列,按一下左上角則會選取所有儲存格,與 Ctrl + A (Windows/Linux) 或 ⌘ + A (Mac) 的作用相同。
  • 在 Mac 上,Ctrl + click 相當於按滑鼠右鍵,請參閱網格選單。

使用鍵盤時:

  • 方向鍵會移動一個儲存格,按住 Ctrl (Windows/Linux) 或 ⌘ (Mac) 時則會朝該方向移到工作表的邊緣。
  • Home 和 End 會移到該列的第一個和最後一個儲存格,按住 Ctrl 或 ⌘ 時則會移到工作表的第一個和最後一個儲存格。
  • Page Up 和 Page Down 會移動一個畫面的列數。
  • 按住 Shift 並搭配上述任一按鍵,則會改為延伸選取範圍。
  • Tab 和 Shift + Tab 會向右和向左移動,Shift + Enter 會向上移動。單獨按 Enter 則會編輯儲存格,請參閱編輯儲存格。

當選取範圍所在的列因復原或協作者的移除而消失時,選取範圍會被拉回到剩餘的列內。

拖曳欄標題的右邊緣即可調整欄寬,按兩下該邊緣則可讓欄寬符合可見範圍內各列中最寬的文字。沒有任何按鍵可以調整欄寬。

編輯儲存格​

在選取的儲存格上輸入會取代其值。按 Enter、F2 或按兩下,則會就目前的值進行編輯,插入點位於值的結尾。
儲存格只能容納一行,因此貼上到其中的定位字元或換行會變成空格。

  • Enter 會寫入編輯並向下移動,Tab 會寫入編輯並向右移動。搭配 Shift 時,則會向上或向左移動。
  • 按一下其他位置,或鍵盤焦點離開網格,也會寫入編輯。
  • Escape 會取消編輯。

編輯 Words 工作表:在儲存格上輸入 NUM 並按 Enter,以 ⌥ + Enter 插入一列並使用 Tab 填入,從網格選單依 Word 排序,接著搜尋 ord 並以 Esc 清空搜尋

未改變值的編輯不會寫入任何內容,而寫入的編輯無論輸入了多少內容,都算作其工作表的一個復原步驟。
未開啟編輯時,按 Delete 或 Backspace 會清空每個選取的儲存格,並算作一個步驟。
開啟編輯期間,復原和重做按鍵會復原和重做您在儲存格中輸入的文字,列按鍵則會作為文字輸入,請參閱索引標籤中的按鍵。
Checks 上的每個儲存格,以及唯讀編輯器中的每個儲存格,都是唯讀的,不會開啟編輯。

當編輯、貼上或清除中有任何一列被拒絕時,該操作的所有內容都不會儲存,並會顯示錯誤快顯通知說明原因,其中會計算列數並指出前三列:

  • 與工作表的另一列相同的名稱,或與同一次貼上中另一列所寫入的名稱相同:Nothing saved: 1 row shares a name with another row (Member) 或 Nothing saved: 2 rows share a name with another row (…)。比較名稱時會去除前後空白並區分大小寫,因此 Member 和 member 不同。空的名稱絕不會被拒絕。
  • 術語的 Domain 被指定為 Domains 工作表上沒有任何定義域使用的文字:Nothing saved: 1 row names an unknown domain (…)。
  • 在您編輯期間被協作者移除的列:Nothing saved: the row was removed。

寫入可能影響其儲存格以外的內容:

  • 在 Physical Name 為空的時為術語指定 Term,若其詞彙能組成名稱,該術語就會得到詞彙所組成的名稱,請參閱依詞彙組成。這只會發生一次:之後詞彙變更時,不會重新組成名稱。
  • 定義域新的 Data Type 會在同一個復原步驟中,變更連結到該定義域之每個欄位的類型,請參閱定義域與資料類型。

術語的定義域​

在術語的 Domain 儲存格上按 Enter、F2 或按兩下,會在儲存格下方(或在上方空間較大時於上方)開啟一個清單,其中有顯示 Domain 的搜尋輸入框。
清單中先是 None,接著依 Domains 工作表的順序列出每個具名稱的定義域,醒目顯示的項目一開始位於該術語連結的定義域上,或位於 None 上。在儲存格上輸入一個字元,會開啟已依該字元搜尋過的清單。

  • 輸入文字會將清單縮小為名稱包含該文字的定義域(不區分大小寫),並移除 None,醒目顯示第一個相符項目。
  • ↑ 和 ↓ 會移動醒目顯示的項目,到達任一端時會循環到另一端。
  • Enter 或 Tab 會選擇醒目顯示的列,按一下則會選擇所按的列,並算作一個復原步驟。術語會連結到所選的那個定義域,即使是兩個同名定義域中的一個也是如此,選擇 None 則會解除連結。
  • Escape 或按一下外部會關閉清單,且不會寫入任何已輸入的內容。

Domains 工作表上沒有具名稱的定義域時,開啟的輸入框不會帶有清單。
貼上的文字會連結到清單中第一個具有該名稱的定義域,空的文字會解除連結,與儲存格所顯示內容相同的文字則會保持連結不變。其他任何名稱都會被拒絕,請參閱編輯儲存格。在儲存格上按 Delete 或 Backspace 會解除術語的連結,即使連結的是已移除的定義域也是如此。

複製與貼上​

Ctrl + C (Windows/Linux) 或 ⌘ + C (Mac) 會以試算表的寫法,將選取範圍複製為以定位字元分隔、每列一行的文字,因此貼上到試算表時會成為儲存格。值中的定位字元或換行會變成空格。
多個範圍只有在涵蓋相同的列且左右並排,或涵蓋相同的欄且上下排列時,才能一起複製。否則不會複製任何內容,並會出現錯誤快顯通知 Nothing copied: the ranges share no rows or columns。

Ctrl + V (Windows/Linux) 或 ⌘ + V (Mac) 會從作用中儲存格開始向下和向右,貼上以定位字元分隔的文字,例如從試算表複製的儲存格:

  • 引號會作為文字貼上,因此包含換行的試算表儲存格不會貼上為單一儲存格。
  • 單一值會填入每個選取的範圍。
  • 超出最後一列的列會依序新增為新的列,因此貼上到空的工作表時會將其填滿。
  • 超出最後一欄的欄會被省略,其餘內容儲存後,快顯通知 Columns past the last one weren't pasted 會告知此情況。
  • 貼上多個儲存格後,會選取其寫入的區塊。

一次貼上(包括其新增的列)算作一個復原步驟,若出現重複的名稱或未知的定義域,整個貼上都會被拒絕,請參閱編輯儲存格。
對超過一百萬個儲存格進行複製、貼上或清除不會有任何作用,並會出現錯誤快顯通知 Nothing done: the selection covers too many cells。
剪下(Ctrl + X (Windows/Linux) 或 ⌘ + X (Mac))在工作表上不會有任何作用。此索引標籤上的複製和貼上絕不會影響圖表,且在開啟儲存格編輯期間,它們會作用於儲存格中的文字。

新增與刪除列​

Add Row 會在工作表結尾新增一列空白列。它會清除搜尋、選取新列的第一個儲存格,並讓網格取得鍵盤焦點,因此輸入的文字會填入該儲存格。
Delete Rows 會移除選取範圍所涵蓋的每一列(無論選取的是哪一欄),一次復原即可將它們全部放回原位。其工具提示會指出具有相同作用的按鍵。

鍵盤焦點位於網格中且未編輯任何儲存格時:

  • Alt + Enter (Windows/Linux) 或 ⌥ + Enter (Mac) 會在選取範圍下方插入與其涵蓋列數相同數量的空白列。
  • Alt + Shift + Enter (Windows/Linux) 或 ⌥ + Shift + Enter (Mac) 會將它們插入在上方。
  • Alt + Backspace 或 Alt + Delete (Windows/Linux),或 ⌥ + Backspace 或 ⌥ + Delete (Mac),會刪除選取範圍所涵蓋的列。

它們的作用與網格選單中的插入列和刪除列相同,請參閱網格選單。插入會清除搜尋,並將新列放在選取範圍所涵蓋之第一列的正上方,或最後一列的正下方。插入後會在第一欄中選取這些新列,並以其中第一列為作用中,且算作一個復原步驟。

這些按鍵是快速鍵索引標籤中 Add Column 和 Remove Column 的按鍵繫結,因此以 setKeyBindingMap 重新繫結這些按鍵的主應用程式也會一併變更它們。Alt + Shift + Enter 是加上 Shift 的 Add Column 按鍵,在該索引標籤中沒有自己的列。
在開啟的編輯中和搜尋輸入框中,它們是文字按鍵,因此在 Mac 上,⌥ + Backspace 會刪除一個字詞。在 Checks 上和唯讀編輯器中,它們不會有任何作用。在此索引標籤上,它們絕不會新增或移除資料表的欄位。
在 Obsidian 中,即使 Obsidian 的快速鍵使用相同的按鍵,這些按鍵仍會傳到此索引標籤。

從未填入內容的列,或所有值都已清空的列,會顯示在其工作表上並傳送給協作者,但檔案會省略該列,因此再次開啟圖表時,該列就會消失。

網格選單​

在 Domains、Words 或 Terms 的儲存格上按滑鼠右鍵即可開啟網格選單。選取範圍外的儲存格會先成為選取範圍。
在最後一列下方或最後一欄右側按滑鼠右鍵,會針對目前的選取範圍開啟選單,因此在空的工作表上,於欄標題下方的任何位置都能開啟選單。選單鍵或 Shift + F10 會針對作用中儲存格開啟選單。

  • Insert 1 row above、Insert 1 row below 和 Delete 1 row,每個項目都會計算選取範圍所涵蓋的列數,例如 Insert 3 rows above,並在右側顯示其按鍵,請參閱新增與刪除列。
  • Sort by <column>, ascending 和 Sort by <column>, descending,會指出您按滑鼠右鍵的欄,例如 Sort by Word, ascending,請參閱排序。在最後一欄右側按滑鼠右鍵時,這兩個項目不會出現在選單中。
  • Import CSV 和 Export CSV,其作用與功能列上的按鈕相同,請參閱匯入與匯出 CSV。

沒有顯示任何列時(在空的工作表上,或搜尋沒有任何相符項目時),只會顯示 Insert 1 row below、Import CSV 和 Export CSV。
在 Checks 上和唯讀編輯器中,則會改為開啟瀏覽器本身的選單,在欄標題或捲軸上按滑鼠右鍵也是如此。
選擇項目、按 Escape、在索引標籤中的其他位置按下、選取範圍或工作表變更時,以及工作表的列因您或協作者的編輯而變更時,選單都會關閉。

排序​

Sort by <column>, ascending 和 Sort by <column>, descending 會重新排列工作表的列本身,而不只是改變顯示的順序。新的順序會儲存在檔案中,協作者也會看到,Export CSV 也會依此順序匯出,一次復原即可恢復原本的順序。
各列會依儲存格所顯示的文字(術語的 Domain 則依定義域的名稱),按照顯示語言的字母順序比較,數字則依數值比較,因此 2 會排在 10 之前。無論遞增或遞減,空的儲存格都會排在最後,比較結果相同的列則保持原本的順序。對已依該順序排列的工作表排序,不會記錄任何步驟。
搜尋會保持原樣,選取範圍也是如此,但其儲存格現在包含的是其他列。

匯入與匯出 CSV​

Domains、Words 和 Terms 都可以從 CSV 檔案匯入,也可以匯出為 CSV 檔案。這些檔案專屬於「字典」索引標籤:畫布右鍵選單的 Import 和 Export 既不會讀取也不會寫入這些檔案,請參閱匯入或匯出檔案。

匯入​

功能列上或網格選單中的 Import CSV 會開啟瀏覽器本身的 .csv 檔案選擇器,而不是主應用程式的匯入對話方塊。再次選擇同一個檔案會再次匯入。
無論顯示的是哪個工作表,檔案都會匯入其標頭所指的字典,接著索引標籤會顯示該工作表,並讓其網格取得鍵盤焦點。工作表會保留其搜尋、選取範圍和捲動位置,因此被搜尋隱藏的列,或新增在可見範圍下方的列,仍不會出現在畫面中。
檔案會以 UTF-8 讀取(無論有無位元組順序標記),若不是有效的 UTF-8,則以 EUC-KR 讀取,較舊的公共資料標準檔案就是如此。

從工具列開啟「字典」索引標籤,接著以 Import CSV 匯入定義域、詞彙和術語,每個檔案都會將索引標籤切換到其對應的工作表,並回報其新增的內容

各列的匯入方式:

  • 每個具有名稱的列都會更新工作表中同名的列,更新的是檔案中有對應欄的屬性。檔案中沒有的欄,則會讓這些屬性保持原樣。比較名稱時會去除前後空白並區分大小寫。
  • 工作表中沒有的名稱會依檔案中的順序新增在最後一列之後。
  • 匯入絕不會移除任何列。
  • 名稱為空的列會被略過。檔案中同一個名稱出現兩次時,以後面的列為準,前面的列算作略過。空白行不算作列。
  • 術語的定義域會依其名稱尋找(取該名稱的第一個定義域),沒有任何定義域使用的名稱會讓術語保持未連結,因此請先匯入定義域。

一次匯入算作該工作表的一個復原步驟。
之後快顯通知會顯示,例如 1 added · 1 updated · 2 skipped。與工作表中相同的列既不算作新增也不算作更新,因此再次匯入同一個檔案不會變更任何內容,也不會記錄任何步驟。
檔案中的術語指定了圖表中沒有的定義域時,第二行會列出前三個,例如 4 unknown domains: 연월일, 금액, 번호。
標頭不符合任何格式,或同時符合兩種格式的檔案,不會匯入任何內容,並會出現錯誤快顯通知 Couldn't read this file as words, terms or domains。

檔案格式​

每個字典都能讀取兩種格式。第一種是編輯器自己的格式,也就是 Export CSV 所寫出的格式,以屬性名稱作為標頭:

字典標頭檔案必須包含
詞彙name,abbreviation,englishName,description,synonyms,forbiddenWordsname、abbreviation
術語name,physicalName,domain,description,synonymsname、physicalName
定義域name,category,dataType,descriptionname、dataType

欄可以依任何順序排列,術語的 domain 存放定義域的名稱,其他任何欄都會被忽略。標頭會區分大小寫,儲存格則會完全依照寫入的內容讀取,包括空格。

第二種是韓國公共資料標準(공통표준)檔案的格式:

字典檔案必須包含也會讀取
詞彙공통표준단어명공통표준단어영문약어명(英文縮寫)、공통표준단어 영문명(英文名稱)、공통표준단어 설명(說明)、이음동의어 목록(同義詞)、금칙어 목록(禁用詞)
術語공통표준용어명공통표준용어영문약어명(物理名稱)、공통표준도메인명(定義域,依名稱)、공통표준용어설명(說明)、용어 이음동의어 목록(同義詞)
定義域공통표준도메인명、데이터타입공통표준도메인분류명(分類)、공통표준도메인설명(說明)、데이터길이、데이터소수점길이

定義域的 데이터타입、데이터길이 和 데이터소수점길이 會合併為一個資料類型:例如 NUMERIC(15,2)、CHAR(8);沒有長度時只有類型本身,例如 DATE;小數位數為 0 時則會省略,例如 NUMERIC(15)。
在這些檔案中,儲存格會去除前後空白,其他欄(例如修訂歷程)則會被忽略。
在這兩種格式中,標頭名稱中的空格都不會影響讀取。

匯出​

功能列上或網格選單中的 Export CSV 會以編輯器自己的格式儲存目前顯示的工作表:無論搜尋顯示哪些列,都會依工作表順序寫出每一列,術語的定義域會以其名稱寫出,已移除的定義域則留空。
檔案為帶有位元組順序標記的 UTF-8,行尾為 CRLF,只有包含引號、逗號或換行的值才會加上引號。此檔案可以在試算表中開啟,也可以匯入回相同的列。
檔案名稱為 <database name>-<timestamp>-words.csv、-terms.csv 或 -domains.csv,並以與編輯器其他匯出相同的方式儲存,請參閱匯出。

Checks 無法匯出,唯讀編輯器也不提供匯入或匯出。

復原與重做​

Domains、Words 和 Terms 各自保有獨立於圖表之外的復原歷程記錄。在此索引標籤上,Ctrl + Z 和 Ctrl + Shift + Z (Windows/Linux) 或 ⌘ + Z 和 ⌘ + Shift + Z (Mac),以及工具列的 Undo 和 Redo,都會作用於目前顯示的工作表,且工具列不會顯示 Time Travel。在 Checks 上,它們不會有任何作用。
ERD 索引標籤的復原絕不會撤回工作表的編輯,請參閱字典工作表。

索引標籤中的按鍵​

鍵盤焦點位於此索引標籤中時,以下編輯器快速鍵會生效,請參閱快速鍵:

  • Search(Ctrl + K (Windows/Linux) 或 ⌘ + K (Mac))會開啟快速搜尋。
  • Toggle Explorer(Ctrl + F (Windows/Linux) 或 ⌘ + F (Mac))會切換到 ERD 索引標籤,並開啟物件總管的搜尋。
  • Undo 和 Redo 會作用於目前顯示的工作表,請參閱復原與重做。
  • Add Column 和 Remove Column 會插入和刪除列,請參閱新增與刪除列。

開啟儲存格編輯期間(包括術語的定義域清單),Search 和 Toggle Explorer 不會有任何作用,因此輸入的文字不會遺失。

其他所有編輯器快速鍵都會留在此索引標籤中,絕不會傳到畫布:Alt + N (Windows/Linux) 或 ⌥ + N (Mac) 不會新增資料表,Delete 和 Backspace 也不會刪除畫布上的任何內容。
網格本身的按鍵則會作用於工作表:Enter 會編輯儲存格,Delete 和 Backspace 會清除選取的儲存格,Ctrl + A (Windows/Linux) 或 ⌘ + A (Mac) 會選取所有儲存格,Escape 則會取消編輯、關閉網格選單或清空搜尋輸入框。複製、剪下和貼上也會留在此索引標籤中,請參閱複製與貼上。

唯讀編輯器​

在 readonly 編輯器中,此索引標籤可以開啟,並會顯示每個工作表。
切換工作表、搜尋、選取、捲動、調整欄寬和複製都能照常運作,從 Checks 以 Enter 或按兩下前往檢查的項目也是如此。檢查的標示也會顯示。

任何儲存格都無法編輯、貼上或清除,且每個未被檢查標示的儲存格都會以唯讀底色繪製。
Add Row、Delete Rows、Import CSV 和 Export CSV 都會隱藏,列按鍵不會有任何作用,按滑鼠右鍵則會開啟瀏覽器的選單。空的工作表不會顯示提示,工具列也不會顯示 Undo 或 Redo。

協作者與檔案​

圖表的檔案會依工作表順序(包括排序後的順序)存放詞彙、術語和定義域,並省略沒有任何值的列。
檔案也會存放每個資料表和欄位的邏輯名稱、每個物理名稱是否由字典產生,以及在定義域仍被列出時每個欄位的定義域連結。檢查和標示都是依據這些資料計算而來,絕不會儲存。

在協作工作階段中,各編輯器會在彼此的字典編輯生效時即時看到,包括排序和插入。每個編輯器都保有自己的工作表、搜尋和選取範圍,其工作表的歷程記錄也只包含自己的編輯。
對協作者在此期間移除的列進行編輯或貼上不會儲存任何內容,並會出現快顯通知 Nothing saved: the row was removed。
推出「字典」索引標籤之前的版本的編輯器在儲存圖表時,不會包含其邏輯名稱、定義域連結和字典,請參閱混用不同版本。

結構描述 SQL、GraphQL、DBML 或 AML 的 Import 會保留字典,JSON 的 Import 會以檔案中的字典取代它們,而 Import and Add 不會匯入任何字典,請參閱匯入外部檔案。
程式碼代理程式可以透過 MCP 伺服器編輯詞彙、術語和定義域、設定邏輯名稱和定義域、重新產生物理名稱,以及列出檢查,請參閱字典和字典檢查。它沒有處理 CSV 檔案的工具。