メインコンテンツまでスキップ

テーブル関連機能

作成済みのテーブルとメモに対する操作(選択、移動、コピー、削除、色の指定、キャンバスに表示する内容の設定)と、その周辺のキャンバス操作をまとめています。
最初はテーブルとメモの操作、続いてテーブルのプロパティ、テーブルへのフォーカス、インデックスと代替キー、自動レイアウト、データベースベンダー、その後にキャンバス自体のキャンバスツールバー、拡大・縮小、移動と移動先の表示位置、Diff Viewer、最後に読み取り専用のエディタがこれらのうち何を残すかを扱います。
テーブルをまとめる枠であるテーブルグループには、専用のページがあります。テーブルグループを参照してください。
論理名と、テーブルに表示する名前を決める名前の表示にも、専用のページがあります。論理名を参照してください。

複数選択​

次の 3 つの方法に対応しています。

  • 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 でそれを終了し、2 回目の Escape で選択を解除します。
読み取り専用のエディタには、これらの選択方法はありません。そこで選択されるのは移動だけです。読み取り専用のエディタを参照してください。

⌘ + drag と ⌘ + click でテーブルを選択し、⌘ + A ですべてのテーブルとメモを選択する様子

共同編集中は、各参加者の選択、フォーカスしているセル、選択範囲が参加者ごとの色でキャンバスに描画されます。共同編集を参照してください。
別の名前の表示で見ている参加者のフォーカスしているセルは、自分の表示でその代わりに描画されるセルに描画されます。例えば、相手の名前のセルは自分の論理名のセルに描画されます。共同編集者を参照してください。

複数テーブルの移動​

すでに選択に含まれているテーブルやメモをドラッグすると、修飾キーなしで選択全体が一緒に移動します。
テーブルはヘッダーか、いずれかのカラムの行でドラッグするため、カラムの行から始めたドラッグでは、カラムではなくテーブルが移動します。カラムは、代わりにフォーカスしている行の横にあるドラッグハンドルで移動します。カラムの並べ替えと移動を参照してください。
ヘッダーのセルやカラムの行では、ポインタが少し動いて初めてテーブルが動き始めるため、そこでクリックすればセルにフォーカスし、ダブルクリックすればその入力欄が開きます。テーブルの色の付いた端(カラーピッカーが開きます)、ヘッダーの + と x のボタン、カラムの行の x からは、ドラッグは始まりません。
選択の外にある対象をドラッグすると、選択がその対象に置き換わり、それだけが移動します。Ctrl + drag (Windows/Linux) または ⌘ + drag (Mac) では、どちらの場合も選択は維持されます。
テーブルとメモを移動できるのはマウスの左ボタンだけです。右クリックはコンテキストメニューの対象を決めるだけで何も移動せず、中ボタンでドラッグすると、代わりにキャンバスの表示位置が移動します。キャンバスの移動を参照してください。

選択した 2 つのテーブルの一方をドラッグすると両方が移動し、リレーションシップが追従する様子

選択しているテーブルグループも、そのテーブルを連れて移動します。選択していて、かつ移動するグループにも含まれるテーブルは、1 回だけ移動します。
テーブルをドロップした位置によって、テーブルがグループに入ったりグループから出たりすることがあります。テーブルの追加と削除を参照してください。

テーブルとメモは 1 つの重なり順を共有します。テーブルやメモを左ボタンまたは右ボタンで押すと、それがほかのすべてのテーブルとメモの前面に移ります。テーブルグループのタイトルバーを押すか、グループの本体を右クリックすると、そのグループのテーブルが前面に移ります。
重なり順は保存されません。ダイアグラムを開き直すと、テーブルはファイルに記載されている順に重なり、メモはすべてテーブルより上に重なります。

テーブルとメモのコピー / 貼り付け​

選択しているテーブルとメモをコピーし、新しいテーブルとメモとして貼り付けます。
ショートカット: Ctrl + C (Windows/Linux) または ⌘ + C (Mac)、Ctrl + V (Windows/Linux) または ⌘ + V (Mac)

コピーしたテーブルは名前、論理名、コメント、カラム、色を保持し、コピーしたメモは本文、サイズ、色を保持します。
コピーした各カラムは論理名を保持し、テーブル名とカラム名はそれぞれ、辞書から生成されたものかどうかを保持します。物理名の生成を参照してください。
貼り付けたカラムがドメインの紐付けを保持するのは、次の 2 つが成り立つ場合だけです。貼り付け先のダイアグラムに、同じ名前のドメインではなくまさにそのドメインが登録されていること、そしてそのドメインがまだ、カラムをコピーしたときのデータ型を持っていることです。それ以外の場合、カラムはドメインなしで貼り付けられ、コピーしたときの型を保持します。カラムの紐付けを参照してください。
インデックスとリレーションシップも一緒にコピーされます。インデックスはコピーしたテーブルへ丸ごとコピーされ、リレーションシップは両端のテーブルがどちらもコピー対象に含まれているときに、種類と、ON DELETE と ON UPDATE のアクションを保持したままコピーされます。片側だけのリレーションシップは、元のテーブルを指したまま残るのではなく破棄されます。
貼り付けたコピーが新しい選択になり、同じコピーを繰り返し貼り付けると毎回 50px ずつずれるため、重なって積み上がることはありません。
コピーはテーブルグループを引き継ぎません。貼り付けたテーブルは、グループの枠の内側に置かれた場合でもどのグループにも属さず、選択しているグループはコピーされません。
View Option → Memos でメモを非表示にしている間も、貼り付けるとコピーに含まれるメモは非表示かつ未選択の状態で追加されるため、新しい選択になるのは貼り付けたテーブルだけです。

リレーションシップでつながる 2 つのテーブルをコピーし、リレーションシップごと 2 回貼り付ける様子

フォーカスしているテーブル内でカラムを選択している場合は、同じショートカットでそのカラムがコピーされます。テーブルの編集を参照してください。

テーブルとメモの複製​

Alt を押しながら、テーブルやメモをマウスの左ボタンでドラッグします。
テーブルはヘッダーか、いずれかのカラムの行でつかむため、カラムの行で Alt + drag するとテーブルが複製され、カラムの順序は変わりません。カラムのドラッグハンドルで Alt を押していても何も複製されず、通常のハンドルのドラッグと同じようにカラムが移動します。カラムの並べ替えと移動を参照してください。
半透明のプレビューがポインタに追従し、ボタンを離すとプレビューの位置にコピーが配置されます。
つかんだ対象がすでに選択に含まれている場合は、選択全体が複製されます。含まれていない場合は、ポインタの下の対象が新しい選択になります。
動かさずに Alt + click すると、コピーは右下に 50px ずれた位置に配置され、その位置がすでに埋まっている場合はさらにずれた位置に配置されます。

複製が引き継ぐ内容は貼り付けと同じで、名前と論理名、コメント、カラム、色、メモのサイズに加えて、コピー対象の中で完結するインデックスとリレーションシップも引き継ぎます。同じダイアグラムの中に留まるため、各カラムのドメインの紐付けはそのまま保持されます。貼り付けと同じく、複製はどのテーブルグループにも属しません。
テーブルグループのタイトルバーを Alt + drag すると、通常のドラッグと同じようにグループが移動します。グループが複製されることはありません。

Alt + drag でテーブルを複製し、Alt + click で右下にもう 1 つコピーを置く様子

テーブルとメモの削除​

選択しているテーブル、メモ、テーブルグループを削除します。
ショートカット:

  • Delete または Backspace。選択全体を削除します。ただし、選択しているのがテーブル 1 つだけで、そのテーブルのカラムをいくつか選択していて、拡大・縮小のレベルが 70% より大きい場合は、代わりにそのカラムを削除します。カラムの削除を参照してください。
  • Ctrl + Backspace または Ctrl + Delete (Windows/Linux)、⌘ + Backspace または ⌘ + Delete (Mac)。カラムを選択している間でも、常に選択しているテーブル、メモ、テーブルグループを削除します。

Delete キーでテーブルをリレーションシップごと削除し、続いてメモのメニューの Delete selected でテーブルとメモをまとめて削除する様子

コンテキストメニューからも削除できます。テーブルやメモのメニューの最後の項目は、そのテーブルやメモが選択している 2 つ以上の対象の 1 つである間は Delete selected と表示され、選択全体を削除します。それ以外の場合は Delete と表示され、そのテーブルやメモだけを削除します。選択しているカラムの行の上では、テーブルのメニューの項目は代わりに Delete column または Delete columns と表示されます。カラムの削除を参照してください。

テーブルを削除すると、そのリレーションシップとインデックスも一緒に削除されます。テーブルグループを削除しても、そのテーブルはどのグループにも属さない状態で残ります。グループの削除を参照してください。
確認はなく、削除は 1 回ごとに Undo の 1 ステップになります。readonly のエディタでは何も削除されません。
Delete と Backspace は、押し続けても削除は 1 回だけで、リレーションシップを削除することはありません。リレーションシップの編集を参照してください。セル、メモ、そのほかのテキスト入力欄に入力している間は、代わりにテキストを編集します。
設定では、この 2 つのキーは Delete Selection として表示されます。ショートカットを参照してください。

テーブルとメモの色指定​

カテゴリごとに区別できるよう、色を指定できます。
テーブルは左端に沿って、メモは上部に沿って色が付きます。その左端または色帯を左ボタンでクリックするか、テーブルやメモのコンテキストメニューで Color を選ぶと、ポインタの位置にカラーピッカーが開きます。色はクリックしたものだけでなく、選択しているすべてのテーブル、メモ、テーブルグループに適用されます。
テーブルグループの色は、グループ自体のメニューの Color で指定します。色の付いたグループに属するテーブルは、ヘッダー全体にグループの色が付き、左端には自身の色がそのまま残ります。グループの色指定を参照してください。

メモの色帯から Blue のプリセットを選んで、選択している 2 つのテーブルとメモに適用し、No color で色を外す様子

ピッカーには、上から順に次のものが並びます。

  • 彩度と明度のエリア、続いて色相スライダーとその横の色のプレビュー。ブラウザがスポイトに対応している場合は、スライダーの前にあるスポイトのボタン Pick a color from the screen で、画面上のどこからでも色を取得できます。
  • Hex、R、G、B の入力欄。Hex は、# の有無を問わず 3、4、6、8 桁の 16 進数、または貼り付けた rgb()、hsl()、CSS の色名を受け付けます。6 桁または 8 桁がそろった値は入力した時点で適用され、それ以外の値は Enter を押すか入力欄を離れたときに適用されます。R、G、B は整数を受け付け、255 より大きい値は 255 として読み取り、Enter を押すか入力欄を離れたときに適用されます。ピッカーが読み取れないテキストは破棄されます。
  • 2 行に 8 個ずつ並んだ 16 個のプリセットの色見本。Red、Orange、Amber、Yellow、Lime、Green、Teal、Cyan、Blue、Indigo、Violet、Purple、Pink、Crimson、Brown、Gray です。色見本にポインタを重ねると、その 16 進数のコードが表示されます。
  • Document colors: ドキュメントのテーブル、メモ、テーブルグループですでに使われている色を、多く使われている順に最大 8 色表示します。該当する色がある場合にだけ、この行が表示されます。
  • No color。

色は常に不透明です。ピッカーには透明度の設定がなく、入力または貼り付けた値に透明度が含まれていても破棄されます。
ピッカーを開いただけでは何も変わらず、選択している対象にすでに付いている色を選んでも Undo のステップは追加されません。

No color は、選択しているすべてのテーブル、メモ、テーブルグループの色を Undo の 1 ステップで外し、ピッカーを閉じます。選択している対象のいずれかに色が付いている間は、テーブル、メモ、テーブルグループのコンテキストメニューで Color のすぐ下に Remove color が表示され、ピッカーを開かずに同じ操作を行います。

ピッカーは開くとキーボード入力を受け取り、Tab と Shift + Tab でピッカー内のコントロールの間を巡回します。矢印キーは、エリアと色相スライダーを 1 ずつ、Shift を押しながらでは 10 ずつ動かし、色見本の間では移動するたびにその色を適用します。
ピッカーがキーボード入力を受け取っている間も、Undo と Redo、拡大・縮小のショートカット、Search、Toggle Explorer はエディタに届きますが、それ以外のエディタのショートカットは届きません。削除のショートカットでは何も削除されず、Delete と Backspace は Hex、R、G、B の入力欄のテキストを編集するだけです。
Escape を押すか、ピッカーの外側のキャンバスを押すと、ピッカーが閉じます。
エクスプローラーの中を押してもキャンバスを押したことにはならないため、ピッカーは開いたままです。エクスプローラーで行を選ぶと選択が変わり、次に色を選ぶと新しい選択に色が付きます。

テーブルの表示オプション​

次の表示オプションを提供します。

  • Table Comment
  • Column Comment
  • DataType
  • Domain
  • Default
  • Not Null
  • Unique
  • Alternate Key
  • Auto Increment
  • Relationship
  • Referential Actions
  • Table Groups
  • Memos

Domain、Unique、Alternate Key、Auto Increment は既定でオフで、それ以外は既定でオンです。
テーブルに表示する名前は表示オプションではありません。キャンバスのコンテキストメニューで View Option のすぐ後にある Name View で、物理名、論理名、その両方のいずれかを選びます。表示の切り替えを参照してください。
Domain は、カラムの順序に従って配置されるセルを各カラムに追加し、カラムが紐付いているドメインの名前を表示します。Domains シートにあるどのドメインにも紐付いていないカラムでは、そこにプレースホルダーの domain が淡い色で表示されます。このセルはどの名前の表示でも表示されます。Domain がオフの間は、Logical Names では代わりに、紐付いているドメインの名前が型のセルに表示されます。ドメインのセルを参照してください。
Alternate Key は、AK1.1 のように各代替キーのカラムにマークを付けます。代替キーを参照してください。
Referential Actions は、リレーションシップの ON DELETE と ON UPDATE のアクションによってコネクタの子側の端に付く D: と U: のラベルを表示します。コネクタの読み方を参照してください。オフにして非表示になるのはそのラベルだけで、テーブルやコネクタは動きません。
Table Groups は、テーブルグループと、そのテーブルのヘッダーに付くグループの色を表示します。オフにすると、キャンバス、ミニマップ、画像の書き出しでそれらが非表示になりますが、テーブルは動かず、すべてのテーブルは自身のグループに属したままです。グループの非表示を参照してください。また、エクスプローラーから Table Groups フォルダが、キャンバスツールバーから New Table Group がなくなり、エクスプローラーの検索でもグループの名前が見つからなくなります。
Memos はメモを表示します。オフにすると、キャンバス、ミニマップ、画像の書き出しですべてのメモが非表示になり、テーブルやコネクタは動きません。非表示のメモは場所を取らないため、スクロールバー、ミニマップ、Go to content コンパスの対象から外れます。
メモを非表示にすると、メモの選択が解除され、開いているメモの編集も終了します。エクスプローラーからは Memos フォルダがなくなり、エクスプローラーの検索と置換とクイック検索の : は、非表示のメモを検索しません。非表示の間は、コンテキストメニュー、キャンバスツールバー、クイック検索、ウェルカム画面から New Memo がなくなり、Alt + M でもメモは追加されません。貼り付けと Import and Add では、含まれるメモが引き続き非表示かつ未選択の状態で追加されます。
読み取り専用のエディタでも切り替えは動作しますが、その画面だけです。保存されず、Undo の履歴に記録されず、共有されず、エディタが再び編集可能になるとファイルの値に戻ります。設定の読み取り専用のエディタを参照してください。

View Option の項目を切り替えてテーブルの表示が変わり、Alternate Key で複合ユニークインデックスに AK1.1 と AK1.2 のマークを付け、続いて Memos をオフにしてからオンに戻す様子

Visualization タブの Flow モードのカードは、Domain を含め、これらのオプションに従いません。カードは独自の行の表示を使い、Relationship がオフでもコネクタを描画します。カードがどのセルを配置するかは、名前の表示だけで決まります。カードの名前を参照してください。

テーブルのプロパティ​

テーブルのプロパティパネルを開きます。
テーブルのコンテキストメニューで Table Properties を選ぶと、右クリックしたテーブルのパネルが開きます。テーブルを選択して Alt + Space を押しても開けます。
パネルは暗くなったキャンバスの中央に開きます。暗くなるのはキャンバスだけのため、開いているエクスプローラーは開いたままで、パネルの横で使えます。ヘッダーには Table Properties のタイトル、最近開いた 5 つのテーブルのチップ(現在のテーブルはハイライトされます)、閉じるボタンが並びます。各チップは、名前の表示と同じようにテーブルの名前を表示します。チップをクリックすると、パネルを開き直さずにそのテーブルへ移動します。
ヘッダーの下には Indexes、Schema SQL、Code Generator の 3 つのタブがあります。パネルの大きさは 3 つのタブで共通のため、タブを切り替えてもパネルが動いたり大きさが変わったりすることはありません。
閉じるボタン、Escape、またはパネルの外側のキャンバスのクリックで閉じます。
エクスプローラーでフォルダ以外の行を選ぶか、エクスプローラーの検索の一致箇所へ移動すると、移動の前にテーブルのプロパティが閉じます。Ctrl + F (Windows/Linux) または ⌘ + F (Mac) でも閉じます。このキーは、エクスプローラーを検索の状態で開くか、エクスプローラーがすでに開いている場合はその検索フィールドにキャレットを置きます。それ以外のエクスプローラーでのクリック(フォルダの行も含みます)や、ツールバーの Explorer ボタンのクリックでは、テーブルのプロパティは開いたままです。キーボード操作がエクスプローラー内にある間に押した Escape は、キーボード操作をキャンバスに戻すだけなので、テーブルのプロパティを閉じるにはもう一度 Escape を押します。

Indexes タブについてはインデックスを参照してください。
Schema SQL タブには、選択しているデータベース向けのテーブルの DDL が表示されます。CREATE TABLE、一部のデータベースが Unique のカラムに対して別途書き出す制約、そしてインデックスです。ツールバーの Schema SQL タブの設定にかかわらず、常にヘッダーも前後のスクリプトもなく、空のコメントへの論理名の書き出しもない、通常の CREATE 文を書き出します。コメントとしての論理名を参照してください。オプションパネルはなく、コンテキストメニューには Database と Bracket しかありません。
Code Generator タブは、このテーブルだけのコードを生成します。コード生成を参照してください。

読み取り専用のエディタでもパネルは開きます。そこでは、テーブルのコンテキストメニューの唯一の項目である Table Properties から、または移動が選択したテーブルで Alt + Space を押して開きます。タイトルの横に Read only のバッジが表示され、Indexes タブでは何も編集できません。
エディタが読み取り専用になったときに開いていたパネルは開いたままで、読み取り専用になります。読み取り専用のエディタを参照してください。

テーブルへのフォーカス​

Visualization タブを Flow モードで開き、選んだテーブルと、そこからリレーションシップ 1 つでつながるすべてのテーブルに絞り込んで表示します。
テーブルのコンテキストメニューの Focus on this table から開くか、1 つ以上のテーブルを選択して Alt + F を押します。
右クリックしたテーブルが複数選択しているテーブルの 1 つである場合、項目は Focus on selected tables と表示され、選択全体にフォーカスします。選択の外にあるテーブルを右クリックした場合は、そのテーブルだけにフォーカスします。
ショートカットは選択しているテーブルを対象とし、メモは除外します。テーブルを選択していない場合は何もしません。読み取り専用のエディタのテーブルメニューに Focus on this table はなく、ショートカットはそこで移動が選択したテーブルを対象とします。読み取り専用のエディタを参照してください。
選択しているテーブルグループは、ショートカットでもメニューの項目でも対象になりません。グループのテーブルが対象になるのはテーブル自体を選択している場合だけで、グループのメニューの Select tables を使うとそのように選択できます。
絞り込んだビューの表示内容と、ダイアグラム全体に戻る方法については可視化を、Flow がそれまでに表示した内容の間を 1 つ戻ったり 1 つ進んだりする方法については前のテーブルと次のテーブルを参照してください。

インデックス​

インデックスはテーブルのプロパティパネルの Indexes タブで定義し、書き出す Schema SQL に含まれます。

左側には、テーブルのキーとインデックスが 2 つのグループに分かれて一覧表示されます。
Keys はテーブルにキーがある場合に表示され、カラムが宣言しているキーを一覧表示します。まず PK が付いたカラムに対する PK_<table name>、続いて Unique が付いたカラムごとの UQ_<table name>_<column name> がカラム順に並びます。名前は、名前の表示にかかわらず、選択しているデータベースの Schema SQL が書き出す物理名のため、Bracket が None のとき、sales.users のようなスキーマ修飾されたテーブルでは、Databricks と Snowflake 以外のすべてのデータベースで PK_users と表示されます。スキーマ修飾されたテーブル名を参照してください。それぞれに PK または UQ のタグとロックのアイコンが付きます。ここでは読み取り専用で、カラムの PK と Unique のフラグによってのみ変わります。
Indexes には、テーブルのインデックスが追加した順に一覧表示されます。各インデックスには、ユニークにする UQ トグル、名前の入力欄、削除する x があります。代替キーであるインデックスには、AK1 のようにその番号も表示されます。インデックスは一覧の下部にある Add Index で追加します。

右側には、テーブルのカラムが Columns の下にチェックボックス付きで一覧表示されます。各行には、カラムの順序、表示オプション、名前の表示に従って、キャンバス上のそのカラムの行と同じセルが表示されます。左側でインデックスを選択するまでは編集できません。
カラムをチェックすると選択中のインデックスに追加され、チェックを外すと削除されます。キーを選択すると、そのカラムにチェックが付いた状態で表示されますが、チェックボックスは無効のままです。
選択中のインデックスのカラムは、下部の Index order に一覧表示されます。各カラムは名前の表示に従った名前で表示され、Both Names では Member Number (member_no) のように、論理名の後に括弧で名前が付きます。グリップハンドルでドラッグすると並べ替えられ、行の ASC または DESC のチップをクリックすると並び順が切り替わります。代替キーでは、各行の末尾にその AK<n>.<m> のマークが付きます。一覧には一度に 3 行が表示され、残りはスクロールして表示します。

読み取り専用のエディタでは、キーやインデックスを選択するとそのカラムは表示されますが、Add Index と x はなく、タブ内のほかの項目も変更できません。名前は入力を受け付けず、すべてのチェックボックスは無効で、Index order の行はドラッグも並べ替えもできず、昇順と降順も切り替えられません。

エクスプローラーは、各テーブルのインデックスをそのテーブルの Indexes フォルダに一覧表示し、そこでインデックスを選ぶとそのテーブルへ移動します。エクスプローラーの検索はインデックス名も検索し、その名前を変更することもできます。検索対象を参照してください。

orders でテーブルのプロパティを開き、Indexes タブでインデックスの上に PK と UQ のキーが並ぶのを確認してから、member_id と ordered_at DESC のインデックスを追加し、Schema SQL タブで確認する様子

代替キー​

代替キーとは、2 つ以上のカラムにまたがるユニークインデックスです。つまり、Indexes タブで UQ トグルがオンになっていて、テーブルのカラムが 2 つ以上チェックされているインデックスです。
1 つのカラムだけのユニークインデックスは、そのカラムの Unique フラグ以上のことを表さないため代替キーではありません。通常のインデックス、主キー、Unique が付いたカラムも代替キーではありません。

表示オプションで Alternate Key をオンにすると、ダイアグラムは各代替キーのカラムに、erwin や IDEF1X と同じ書き方で AK1.1、AK1.2 などのマークを付けます。このオプションは既定でオフです。

キーの番号は、インデックスを追加した順ではなく、そのカラムがテーブルのどこにあるかで決まります。Index order の先頭のカラムがテーブルの最も上にあるキーが AK1 です。先頭のカラムが同じ場合は各キーの次のカラムで決まり、より長いキーの先頭部分にあたるキーは、その長いキーより前になります。
テーブル内でカラムを移動したり、キーの Index order を並べ替えたりすると、キーの番号が変わることがあります。キーの削除を Undo するとキーには元の番号が戻り、すべての共同編集者に同じ番号が表示されます。

キーの各カラムには AK<n>.<m> のマークが付きます。n はキーの番号、m はキーの Index order におけるそのカラムの位置です。複数のキーに含まれるカラムには、すべてのマークがカンマでつながれて付きます。
例えば、a、b、c のカラムを持つテーブルで (c, a) と (b, a) のユニークインデックスがある場合、b が c より上にあるため、AK1 = (b, a)、AK2 = (c, a) になります。そのため、b は AK1.1、c は AK2.1、a は AK1.2,AK2.2 と表示されます。

マークは行の最後、カラム順で最後になるセルのさらに後ろに描画されます。セルではないため、フォーカス、編集、コピーの対象になることはありません。テーブルの編集を参照してください。
マークは何も置き換えないため、主キーや外部キーのカラムにも AK のマークが付きます。行の先頭のキーのアイコンは引き続き PK と FK を示し、Unique のセルにもそれ自体の UQ がそのまま表示されます。
代替キーを持つテーブルは、すべての行の最後のセルの後ろに、最も長いマークが収まる余白を確保します。代替キーを持たないテーブルの幅は変わりません。
マークは ERD キャンバスに表示されますが、70% 以下でテーブルが名前だけの表示に折りたたまれているときは表示されません。画像の書き出しにも表示され、画像では拡大・縮小のレベルにかかわらず、すべてのテーブルが省略なしで描画されます。Visualization タブの Graph モードのホバープレビューにも表示されますが、Flow のカードには表示されません。

Indexes タブには、このオプションがオンかどうかにかかわらず番号が表示されます。インデックスを参照してください。

自動レイアウト​

すべてのテーブルをキャンバス上に配置します。
キャンバスのコンテキストメニューまたはクイック検索から Auto Layout を開き、4 つのレイアウトから 1 つを選びます。

レイアウト何を描くか
Forceシミュレーションです。リレーションシップがテーブルを引き寄せ、隣り合うテーブルは互いに押し離し、重なったテーブルは離れます。
Flowリレーションシップに沿って左から右へ流れます。コネクタごとにテーブルへ接する位置を分けます。線の交差を少なくしようとしますが、ほかのレイアウトなら避けられる交差が残ることもあります。
Tree - vertical上から下へ階層に並べます。親テーブルが、それを指す外部キーを持つテーブルの上に置かれます。
Tree - horizontal同じ階層構造を、左から右へ並べます。

Force は配置が落ち着くまでプレビューを開き、表示される通知に Apply と Cancel があります。
プレビューの表示範囲は配置を始めた時点のダイアグラムに合わせられるため、配置が落ち着くまでの間にテーブルが枠の外へ出ることがあります。プレビューは 70% 以下で描画されるため、テーブルは名前と色の付いた端だけの表示になります。プレビューは、ファイルが保持する表示にかかわらず、画面で見ている名前の表示で開きます。キャンバスの外を参照してください。
Apply を押すと、その時点の位置で確定します。押さない場合も、静止した時点で配置は自動的に適用されます。Cancel または Escape ではダイアグラムは元のままです。

残りの 3 つはメインスレッドの外で一度に計算されるため、見守るものはありません。計算の間は通知が表示され、できあがった配置はダイアグラムがすでに占めている範囲の中央に置かれます。Cancel または Escape は、もう待っていないレイアウトを破棄します。Shared Worker を動かさないホストでは Could not place tables で終わります。Web Worker を参照してください。60 秒以内に結果が返ってこないレイアウトも、同じように終わります。

どれを選んでも動くのはテーブルとテーブルグループで、メモはその場に残ります。テーブルは、画面で見ている名前の表示でのテーブルの幅で配置されます。自分自身を指すリレーションシップは無視し、同じ 2 つのテーブルの間に複数あっても 1 つとして数えます。
どのレイアウトも、グループが表示されているかどうかにかかわらず各グループのテーブルをまとめたまま配置し、テーブルを含む各グループの枠をそのテーブルに合わせます。テーブルグループを参照してください。
結果は 1 件の履歴として記録されるため、1 回の Undo ですべてのテーブルとグループが元の位置に戻ります。
読み取り専用のエディタに Auto Layout はありません。エディタが読み取り専用になったときにまだ実行中のものは、そこで終了します。Force のプレビューは通知とともに閉じてどの位置も残さず、計算中のレイアウトは通知とともに破棄されるため、そのとき、またはエディタが再び編集可能になった後も、どのテーブルも動きません。

散らばったテーブルを、キャンバスのコンテキストメニューの Flow 自動レイアウトで整え、リレーションシップに沿って左から右へ並べる様子

データベース​

対応しているデータベースは次のとおりです。

  • Databricks
  • MSSQL
  • MariaDB
  • MySQL
  • Oracle
  • PostgreSQL
  • Snowflake
  • SQLite

データベースは、キャンバスのコンテキストメニュー、Schema SQL タブと Code Generator タブのオプションパネルまたはコンテキストメニュー、クイック検索の Database から選びます。どこで選んでも同じ設定が変わります。読み取り専用のエディタのキャンバスメニューに Database はなく、それ以外での選択はその画面だけを変えます。読み取り専用のエディタを参照してください。

この設定は、書き出す Schema SQL の構文、DataType の自動補完、生成されるコードや読み込んだスキーマで解決される型を決定します。
Schema SQL タブで書き出せる Statements と Header の選択肢も、この設定で決まります。データベースにない選択肢はオプションパネルに淡い色で残り、SQL はそのデータベースにある最も近い選択肢で書き出されます。
また、Schema SQL とコード生成の ORM の対象がどの ON DELETE と ON UPDATE のアクションを書き出すか、リレーションシップのメニューでどのアクションに not in <database> の注記が付くかも決定します。ON DELETE と ON UPDATE とコード生成を参照してください。
Schema SQL の読み込みでは、TIMESTAMP WITH TIME ZONE、public.mood、integer[] のように、エディタの一覧にあるかどうかにかかわらず、カラムのデータ型が引数リストを含めてそのまま保持されます。データ型を参照してください。DataType の自動補完が候補に出すのは、選択しているデータベースの一覧にある型だけです。

データベースを PostgreSQL に切り替え、自動補完から PostgreSQL の型を選ぶ様子

DataType の自動補完で、あいまい一致の候補を矢印キーで移動し、Right、Tab、Enter で確定する様子

キャンバスツールバー​

キャンバスの下端の中央には小さなツールバーが浮いていて、左から順に、キャンバス自体に対する道具と、キャンバスに追加するコマンドがまとまっています。

  • ハンドとポインタ。既定はポインタで、ハンドにすると空いている場所だけでなくテーブルの上でもドラッグが表示位置の移動になります。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 を押したときと同じように、グループを追加せずに描画を終了します。View Option → Memos でメモを非表示にしている間は New Memo が、View Option → Table Groups でグループを非表示にしている間は New Table Group が表示されません。
  • 拡大・縮小。Zoom out、パーセントで示した現在の拡大・縮小のレベル、Zoom in が並びます。2 つのボタンは、拡大・縮小のショートカットと同じように段階的に拡大・縮小し、パーセント表示をクリックすると 100% に戻ります。
  • 4 種類のリレーションシップ記法。リレーションシップを開始するときのものと同じです。編集を始めるを参照してください。リレーションシップはテーブルを 2 つクリックして描くため、記法を選ぶと道具はポインタに戻ります。
  • Name View。現在の表示(Physical Names、Logical Names、Both Names)を示す、下向きの矢印の付いたボタンです。どの表示を示していても幅は変わらないため、切り替えてもツールバーがずれることはありません。クリックすると、ツールバーの上に 3 つの表示の一覧が開き、現在の表示にチェックが付きます。1 つを選ぶとその表示に切り替わって一覧が閉じます。ボタンをもう一度クリックするか、ほかの場所を押すか、Escape を押すと、切り替えずに一覧が閉じます。各表示で何が描画されるかについては名前の表示を、切り替えが保存されるかどうかについては表示の切り替えを参照してください。
  • Zen モード Alt + Z。キャンバスとこのツールバーだけを残して、ほかをすべて隠します。もう一度 Alt + Z を押すか、ボタンを押すと元に戻ります。開いているエクスプローラーは、閉じられることなくほかと一緒に隠れ、ほかと一緒に戻ります。Zen モードの間もエクスプローラーは開けます。エクスプローラーが隠れるときを参照してください。
  • Go to content コンパス。テーブルも、表示されているメモやテーブルグループも画面にない間だけ、ツールバーの末尾に加わります。キャンバスの移動を参照してください。

ショートカットのあるボタンは、New Table (Alt + N) (Windows/Linux) または New Table (⌥ + N) (Mac) のように、ツールチップにそのショートカットを表示します。
Force の自動レイアウトのプレビュー、テーブルのプロパティ、Time Travel、Diff Viewer のいずれかが開いている間はツールバーが隠れ、閉じると再び表示されます。
読み取り専用のエディタのツールバーには、拡大・縮小、Name View、Zen モード、Go to content のコンパスが残ります。ハンドもポインターも、New Table、New Memo、New Table Group も、表記のボタンもなく、エディタが再び編集可能になるとそれらが戻ります。

ツールバーからテーブルとメモを追加し、New Table Group の描画を準備してから解除し、ハンドで表示位置を移動して、拡大・縮小を段階的に行い、⌥ + Z で Zen モードを切り替える様子

拡大・縮小​

Ctrl + Wheel (Windows/Linux) または ⌘ + Wheel (Mac) で拡大・縮小します。ホイールだけを回すとキャンバスの表示位置が移動します。
トラックパッドのピンチでも、ピンチした位置を中心に拡大・縮小します。タッチスクリーンでは 2 本の指でも拡大・縮小でき、指を動かすと表示位置も移動します。
ショートカット: 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 のショートカットと同じように拡大・縮小します。1 回押すごとに、画面の中心を保ったまま 4 パーセントポイントずつ変わります。2 つのボタンの間のパーセント表示は現在の拡大・縮小のレベルを示し、クリックすると Ctrl + 0 (Windows/Linux) または ⌘ + 0 (Mac) と同じように 100% に直接戻ります。

拡大・縮小のレベルは 10% から 150% までです。
70% 以下ではテーブルが名前と色の付いた端だけの表示になり、拡大するまではセルの編集、セルのショートカット、コピーと貼り付けは動作しません。折りたたまれたテーブルに表示される名前は、名前の表示に従います。名前の表示を参照してください。

同じ 3 つのショートカットは Visualization タブでも、Graph モードと Flow モードのどちらでも、それぞれのモードの範囲内で拡大・縮小します。可視化を参照してください。

⌘ + Wheel でテーブルが名前だけの表示になるまで縮小し、⌘ + Plus、⌘ + Minus、⌘ + 0 で元に戻す様子

キャンバスの移動​

キャンバスに端はなく、設定するサイズもありません。テーブルとメモは置いた場所にそのままあり、以下のものはすべて固定の紙面ではなくダイアグラム自体を基準にしています。

キャンバスの空いている場所をドラッグすると表示位置が移動します。Space でハンドツールに切り替えれば、テーブルの上を含めてどこからでもドラッグできます。ホイールでも移動でき、Shift + Wheel は左右に移動します。
テーブルグループの本体、つまりタイトルバーの下の領域は、左ボタンに対してはキャンバスの空いている場所として扱われます。ドラッグすると表示位置が移動し、Ctrl + drag (Windows/Linux) または ⌘ + drag (Mac) で選択範囲を描き、クリックすると選択が解除されます。
移動できる範囲に制限はありません。ホイール、ドラッグ、ハンドツールのいずれでも、動かした分だけ表示位置が移動し、どの方向でもテーブルの先まで進みます。

マウスの中ボタン(ホイールを押し込む)でドラッグすると、ポインタでもハンドでも、キャンバスのどこからでも表示位置を移動できます。押した位置がテーブル、メモ、セル、アイコン、リレーションシップの上でも動作します。
中ボタンでのドラッグは何も選択、移動、クリックせず、選択もそのまま維持されます。開いているコンテキストメニューとカラーピッカーは閉じ、ブラウザ自体の中クリックによるスクロールや貼り付けは始まりません。
スクロールバー、ミニマップ、キャンバスツールバー、または編集中のセルやメモの上で中ボタンを押しても、表示位置は移動しません。

右上のミニマップは、ダイアグラムの四方に画面 1 つ分の余地、つまりスクロールバーが届く範囲を加え、粗いグリッドに合わせて外側へ広げた範囲を表示するため、縮小するほどミニマップの中のダイアグラムは小さくなります。クリックするとその位置へ表示が移動し、表示範囲の枠をドラッグすると表示位置が移動します。縮小するほど、表示範囲の枠はミニマップのより広い部分を覆うように大きくなります。
ミニマップは各テーブルをそのテーブルの色で描き、表示されている各テーブルグループを、そのテーブルの後ろにグループの色の枠として描きます。
右端と下端のスクロールバーも同じ範囲を表します。この範囲はダイアグラムが画面の片側のすぐ外にある位置から反対側のすぐ外にある位置までなので、描画されているダイアグラムより少なくとも画面 1 つ分長く、表示位置がダイアグラムの先にある間はさらに長くなります。Zen モード以外では、テーブル、表示されているメモ、表示されているテーブルグループが 1 つでもあれば、すべてが画面に収まっていても両方のスクロールバーが表示されます。メモしかなく、そのメモが View Option → Memos で非表示になっているドキュメントのように、これらが 1 つもない場合は、スクロールバーもミニマップも表示されません。
スクロールバーのつまみやミニマップの表示範囲の枠をドラッグする移動だけは、止まる位置があります。テーブルが画面のすぐ外に出る位置までしか進まず、ドラッグを始めた位置がそれより外側だった場合は、その位置までしか進みません。

移動した結果、テーブルも、表示されているメモやテーブルグループも画面に残らなくなると、キャンバスツールバーの末尾に Go to content コンパスが加わり、最も近い対象を指す矢印とその距離を表示します。クリックすると、拡大・縮小のレベルを変えずにその対象が画面の中央に来ます。

キャンバスの空いている場所のドラッグ、ホイール、テーブルの上での中ボタンのドラッグ、ミニマップで表示位置を移動し、Shift + wheel でコンテンツの先まで移動してから Go to content コンパスで戻る様子

移動先の表示位置​

キャンバス上の対象へ移動する操作は、どれも 1 つの規則で表示位置を動かします。クイック検索の #、@、: の結果、エクスプローラーの行とその検索と置換の一致箇所、Diff Viewer の一覧の行、Flow の外部リンクのカードのボタン、辞書タブの Checks シートでテーブルやカラムを示すチェック、そして Import and Add で追加した内容への移動です。何が選択されるかはそれぞれのセクションで説明し、このセクションでは表示位置がどこへ移るかを説明します。

移動によって拡大・縮小のレベルが変わることはなく、スクロールは多くても 1 回です。ほかのタブからは、まず ERD タブに切り替わります。
キャンバスの範囲は、表示されているとおりに測ります。上部のツールバーより下(Zen モードでは高さ全体)で、開いているエクスプローラーより右の範囲です。エクスプローラーはキャンバスを覆うのではなく、キャンバスの幅を狭めます。

横方向と縦方向は別々に判断され、移動先がすでに十分に見えている方向は、まったくそのままです。

  • その方向の長さがキャンバスの半分以下の移動先は、その中心がキャンバスの中央の半分、つまり横または縦の 4 分の 1 から 4 分の 3 までの間にある間は動きません。そうでない場合は、その中心がキャンバスの中央に来ます。
  • それより長くても、両端に 40px ずつの余裕を残して収まる移動先は、全体が見えている間は動きません。そうでない場合、横方向では中央に置かれ、縦方向では上端がキャンバスの上端から 40px 下に来ます。
  • さらに長い移動先は、全体が見えている間、またはキャンバスより長い場合は下に挙げる基準となる部分が見えている間は動きません。そうでない場合は、収まるなら中央に置かれ、収まらないなら、基準となる部分の両端がキャンバスの内側に少なくとも 40px 入る範囲で、できるだけ中央に近い位置に置かれます。基準となる部分がそれには長すぎる場合は、その始まりがキャンバスの端から 40px 内側に置かれます。

そのため、キャンバスの左端近くで縦の中ほどにある小さなテーブルは、横方向にだけ移動します。

移動で見える位置に表示されるものと、全体が収まらないときに見えている必要がある基準となる部分は、次のとおりです。

  • テーブル: テーブル全体。基準は上部の名前の帯で、View Option → Table Comment でコメントを表示している間のテーブルのコメントの一致箇所では、そのコメントのセルです。テーブルが名前だけの表示に折りたたまれる 70% 以下では、枠の中央にある名前が基準です。
  • カラム: その行。基準は移動先のセルで、カラム名、論理名の一致箇所や論理名に対するチェックでは論理名、ドメインに対するチェックではドメインのセル、View Option → Column Comment でコメントを表示している間は一致箇所を含むコメントです。行にそのセルが描画されていない場合は、その代わりに描画されているセルへ移動します。Logical Names での名前には論理名、Physical Names での論理名には名前、View Option → Domain がオフの間のドメインのセルには型のセル、さらに DataType もオフの間は行全体です。70% 以下では、カラムへの移動はテーブルの規則でそのテーブルを表示します。
  • 長いコメントのように、全体を表示するには幅が広すぎるセル: その中の一致したテキストが基準です。Physical Names での論理名の一致箇所に対する名前のように、一致箇所を含むセルの代わりに描画されているセルへの移動では、テキストは基準になりません。
  • リレーションシップ: その 2 つのテーブルにまたがる範囲。基準は子テーブルです。
  • テーブルグループ: その枠。基準はタイトルバーです。
  • メモ、または Import and Add で追加したまとまり: その全体。

どちらの方向も動かない場合はスクロールしないため、同じ場所へ続けて 2 回移動しても、2 回目は何も動きません。キャンバスをスクロールする移動は、ほかの表示位置の変更と同じようにそのスクロールを Undo の履歴に記録し、何も動かさない移動では Undo するものは残りません。Import and Add では、スクロールは追加と同じステップに含まれます。Diff Viewer の一覧の行は、ビューの読み取り専用の両側だけを動かすため、何も記録せず、読み取り専用のエディタは移動をまったく記録しません。
どの移動でも、作成中のリレーションシップが始まったり確定したりすることはありません。Go to content コンパスは移動ではなく、指している対象を中央に置きます。

Diff Viewer​

以前に保存したドキュメントと現在のドキュメントを比較できます。
キャンバスのコンテキストメニューから Diff Viewer を選び、以前に書き出した .json のドキュメントを選択します。

ビューはキャンバスの上に開き、左に変更点、その隣に保存したドキュメントと現在のドキュメントが並びます。
現在のドキュメントは、ビューを開いた時点の状態で比較されます。その後の変更は、共同編集者によるものも含めてビューに反映されません。両側とも、どちらのファイルがどの表示を保持していても、画面で見ている名前の表示で開き、その表示のままです。キャンバスの外を参照してください。開いているエクスプローラーはビューが開いている間は隠れるため、ビューはエディタの幅全体を使います。
どちらの側も、ホイール、空いている場所やテーブルグループの本体のドラッグ、またはその側の上のどこでも中ボタンでドラッグすると表示位置が移動し、Ctrl + Wheel (Windows/Linux)、⌘ + Wheel (Mac)、またはピンチで拡大・縮小します。70% 以下ではキャンバスと同じようにテーブルが折りたたまれます。両側の表示を参照してください。
両側とも読み取り専用のため、ドキュメントが変更されることはありません。それぞれの側が独自の選択を持ち、そこでテーブルをクリックすると、その側でだけテーブルが選択されます。
ビューは、開くときに表示される Diff Viewer の通知の Close ボタン、または Escape で閉じます。
読み取り専用のエディタにも Diff Viewer はあり、ビューはそこでもどのエディタとも同じように動作し、側のテーブルをクリックすると、その側でそのテーブルが選択されます。エディタが読み取り専用になったときに開いていたビューは開いたままです。

保存した .json ファイルで Diff Viewer を開き、ツリーで A、M、D、R の付いた行をクリックし、名前で絞り込んでから閉じる様子

比較対象​

テーブル、カラム、インデックス、外部キー、メモ、テーブルグループのすべてが比較されます。
各項目はまず ID で対応付けられます。そのため、ID が保たれている同じファイルの以前のバージョンと比較すると、名前を変更したテーブル、カラム、インデックス、テーブルグループも 1 つの項目のままで、名前の変更として一覧表示されます。
残った項目は、変わらずに保たれているもので 1 対 1 に対応付けられます。テーブルとテーブルグループは大文字と小文字を区別した名前、カラムとインデックスはテーブルと名前、外部キーは 2 つのテーブルとカラムの組、メモは本文、次に位置で対応付けられます。名前のないインデックスは、カラム、その順序と並び順、ユニークかどうかで対応付けられ、名前のないテーブルグループは、共有するテーブルが最も多いものと対応付けられます。
そのため、SQL の読み込みで作り直したダイアグラムのように、ほかの場所から来たファイルと比較すると、名前を変更したテーブルは、1 つの削除と 1 つの追加として表示されます。

変更として扱われるのは次のものです。

  • テーブル: 名前、コメント、テーブルグループ、位置、色。
  • カラム: 名前、コメント、データ型、既定値、Auto Increment、主キー、Unique、Not Null、テーブル内での位置。両方のドキュメントに共通する順序から外れたカラムだけが移動したと見なされるため、カラムを 1 つ追加、削除、移動しても、ほかのカラムには印が付きません。
  • インデックス: 名前、UNIQUE、カラムとその順序と並び順。
  • 外部キー: カラムの組、リレーションシップの種類、ON DELETE と ON UPDATE のアクション。
  • メモ: 本文、位置、サイズ、色。
  • テーブルグループ: 名前、含むテーブル、色、位置、サイズ。

そのため、移動、サイズの変更、色の変更だけを行ったテーブル、メモ、グループも、変更されたものとして扱われます。位置とサイズは整数のピクセル単位で比較され、重なり順と、コネクタがテーブルに接する位置は変更として扱われません。
論理名、ドメインの紐付け、辞書タブの単語、用語、ドメインは比較されないため、それらだけの変更は一覧にも表示されず、印も付きません。ドメインによって変わったデータ型は、カラムのデータ型の変更として扱われます。

変更のツリー​

左の一覧はエクスプローラーのツリーと同じように描画され、変更があったものだけを含みます。Tables、Table Groups、Memos はそれぞれ行を含む場合にだけ表示され、テーブルの下にはそのテーブルの Columns、Indexes、Foreign Keys が並びます。外部キーは子テーブルの下に一覧表示され、追加または削除されたテーブルの下には何も並びません。
各フォルダには含む行の数が表示され、すべてのフォルダとテーブルは展開された状態で始まります。
テーブルやカラムの行は、両側が開いたときの名前の表示で名前が表示されます。Both Names では論理名の後に淡い色で名前が表示され、削除された行では、その淡い色の名前もほかの部分と一緒に取り消し線が引かれます。テーブルとテーブルグループは、表示にかかわらず、大文字と小文字を区別せずに名前順に並びます。メモと、テーブルのカラム、インデックス、外部キーは現在のドキュメントの順序を保ち、削除されたものは元の位置に戻して並べられます。メモの行にはメモの最初の行が表示され、外部キーの行には user_id → users(id) のように、子側のカラム、続いて → と親テーブルとそのカラムが表示されます。空の名前は斜体の unnamed と表示されます。

各行の末尾には文字が付き、A、D、M、R の付いた行は、名前がその文字の色になります。

  • A: 追加。緑で、現在のドキュメントにだけあります。
  • D: 削除。赤の取り消し線付きで、保存したドキュメントにだけあります。
  • M: 変更。琥珀色で、両方にあり、変更されています。
  • R: 名前の変更。青で、両方にあり、名前が変わっています。名前の変更はほかのどの変更よりも優先されますが、ほかの変更もツールチップには表示されます。
  • ~: 琥珀色で、すべてのフォルダと、内側の変更のためだけに一覧表示されているテーブルの末尾に付きます。それらの名前は通常の色のままです。

行の名前にマウスを重ねると、ツールチップが表示されます。まず状態(Added、Deleted、Modified、Renamed、Changed inside のいずれか)、続いて Name: users → members や NN: ✗ → ✓ のように、変更ごとに 1 行が並びます。テキストは最初の行で引用されて 40 文字を超える部分は切り詰められ、空の値は — と表示されます。追加または削除された項目のツールチップは、状態だけです。

ツリーの上にある Filter by name は、どの名前の表示でも、現在の名前または保存したドキュメントでの名前、あるいは現在の論理名または保存したドキュメントでの論理名に、入力した文字列を大文字と小文字を区別せずに含む行だけを残します。名前が一致するテーブルはすべての行を残し、一致しないテーブルは一致する行だけを残します。何も一致しない場合、ツリーは空になります。
2 つのドキュメントにまったく違いがない場合、ツリーには No changes と表示されます。

ツリーの右端をドラッグすると、200px から 480px までの範囲で幅を変えられ、端をダブルクリックすると 260px に戻ります。比較を開くたびにツリーは 260px の幅で始まり、残りの幅を 2 つの側が均等に分けます。
キーボードでは、エクスプローラーのツリーと同じようにツリーの中を移動できます。エクスプローラー内のキーを参照してください。ただし、ここではツリーでも Filter by name でも、Escape でビューが閉じます。

変更箇所への移動​

行をクリックするか、キーボードでその行にいるときに Enter か Space を押すと、その項目を持つそれぞれの側で、その項目へ移動します。追加された項目では現在のドキュメントの側だけ、削除された項目では保存したドキュメントの側だけ、両方にある項目では両側で移動します。フォルダの行は折りたたむか展開するだけで、テーブルの行の先頭にある矢印も同じです。

  • テーブル、カラム、インデックスの行では、そのテーブルだけを選択します。
  • 外部キーの行では、その 2 つのテーブルを見える位置に表示し(2 つが離れすぎていて一緒に表示できない場合は子テーブルを表示し)、子テーブルを外部キーのカラムとともに選択して、コネクタを強調表示します。コネクタの読み方を参照してください。
  • メモの行ではそのメモを、テーブルグループの行ではそのグループを選択します。その側のドキュメントで非表示になっているメモやグループでは、その側は移動しません。

それぞれの側は、その側で測った移動先の表示位置の規則で動くため、同じ行をもう一度クリックしても何も動きません。

両側の表示​

両側では、テキスト、枠線、コネクタに色が付き、塗りつぶされるものはありません。追加は緑で現在のドキュメントの側にだけ、削除は赤で保存したドキュメントの側にだけ表示され、変更(琥珀色)と名前の変更(青)は両側に表示されます。変更のないものは通常どおり描画されます。

  • 追加または削除されたテーブルやテーブルグループは、その色の枠線で囲まれ、名前もその色になります。追加または削除されたメモは枠線で囲まれます。
  • 両方のドキュメントにあるテーブルで追加または削除されたカラムは行全体に色が付き、移動したカラムは行全体が琥珀色になります。追加または削除されたテーブルの中のものには、個別の印は付きません。
  • 変更されたセルのテキストは琥珀色になります。対象は、テーブルのコメント、カラムのコメント、データ型、既定値、Auto Increment、Unique、Not Null、メモの本文です。主キーの変更では、カラムのキーのアイコンが琥珀色になります。
  • 名前を変更したテーブル、カラム、テーブルグループは、名前が青になります。
  • 移動、サイズや色の変更、所属するグループやグループのテーブルの変更のように、専用のセルを持たない変更があるテーブル、メモ、テーブルグループは、琥珀色の枠線で囲まれます。
  • 追加、削除、変更された外部キーは、コネクタがその色で描画されます。マウスを重ねたときや、行による強調表示の間は、代わりに通常のホバーの色で描画されます。
  • インデックスの変更は、どちらの側にも印を付けず、ツリーにだけ表示されます。

それぞれの側は、その側のドキュメントの View Option に従います。その側が描画しないセルの変更は、代わりに名前に表示されます。どちらも既定でオフの Unique や Auto Increment のように、View Option で非表示になっているセルのカラムの変更では、カラム名が琥珀色になり、キーのアイコンを表示しない行での主キーの変更も同じです。Table Comment がオフの間のテーブルのコメントの変更では、テーブル名が琥珀色になります。名前の変更の青は、この琥珀色より優先されます。ドキュメントで非表示になっているメモやテーブルグループは、ツリーには一覧表示されますが、その側には描画されません。

名前のセルを描画しない Logical Names では、名前の変更の青と、その側が描画しないセルの変更の琥珀色は、名前の代わりに描画される論理名に付きます。データ型の変更では、セルにドメインの名前が表示されている場合でも、どの名前の表示でも型のセルが琥珀色になります。どちらの側も、辞書のチェックがキャンバスの名前に付ける色は描画しません。キャンバス上のマークを参照してください。

70% 以下では、折りたたまれたテーブルも枠線を保ちます。名前は、追加または削除されたテーブルの緑か赤、または名前の変更の青を保ち、それ以外の場合はコメントの変更の琥珀色になります。カラムの変更は拡大するまで描画されませんが、ツリーには引き続き一覧表示されます。

読み取り専用のエディタ​

readonly のエディタ(たとえば VS Code でダイアグラムとして開き直した Git のリビジョン)は、閲覧用のエディタです。6 つのタブ、エクスプローラー、ミニマップ、スクロールバー、共同編集者のカーソルと選択は残り、ダイアグラムを変更するコントロールは、薄く表示されるのではなく、取り除かれます。

ERD キャンバスでは次のようになります。

  • ドラッグは、どこから始めても表示位置の移動になります。何もないキャンバスでも、テーブル、メモ、テーブルグループの上でも同じです。中ボタン、ホイール、ピンチ、拡大・縮小のキーは、どのエディタとも同じように動作します。
  • ポインターをテーブルの上に置くと、そのリレーションシップが強調されます。動かさずにクリックすると、クリックしたテーブルのリレーションシップ、またはクリックしたリレーションシップが強調され、それ以外の場所をクリックすると強調が消えます。
  • 押下、範囲選択、すべて選択のキーでは何も選択されません。選択するのは移動だけです。エクスプローラーの行、その検索と置換の一致箇所、クイック検索の #、@、: の結果が、移動先を選択し、どの選択とも同じように外枠が付き、フォーカスされたセルは移動先が示す位置に置かれます。動かさずにクリックすると、その選択は解除されます。
  • 矢印キーはフォーカスされたセルを動かします。コピー、Table Properties、Focus on this table は、移動が選択したものに対して、それぞれのキーで動作し、貼り付けは何も追加しません。ほかのキーはショートカットに挙げています。
  • セル、メモ、テーブルグループの名前は編集できる状態で開きません。テーブル、メモ、グループに + や x のボタンはなく、メモとグループにサイズ変更の縁はなく、カラムのドラッグハンドルも、カラーピッカーもありません。

キャンバスのコンテキストメニューには View Option、Name View、Export、Diff Viewer が残ります。New Table、New Memo、New Table Group、Toggle Explorer、Relationship、Derive Physical Names Again、Database、Import、Import and Add、Auto Layout はありません。
テーブルのメニューに残るのは Table Properties だけで、そのテーブルのパネルを読み取り専用で開きます。テーブルのプロパティを参照してください。メモ、リレーションシップ、テーブルグループではメニューが開きません。
キャンバスツールバーには、拡大・縮小、Name View、Zen モード、Go to content のコンパスが残ります。上部のツールバーにはデータベース名が編集できないテキストで表示され、Undo、Redo、Time Travel はありません。
3 つの項目をすべて持つ書き出しと Diff Viewer は、どのエディタとも同じように動作します。

View Option、Name View、データベース、タブ、表示位置、拡大・縮小は、そこでも変更できますが、変わるのはその画面だけです。保存も、記録も、共有もされません。設定の読み取り専用のエディタを参照してください。

エディタを読み取り専用にすると、編集のために開いていたものが終了します。セル、メモ、テーブルグループの名前のエディタ、描画中のリレーションシップや New Table Group、選択とフォーカスされたセル、ハンドツール、カラーピッカー、Map Columns、Time Travel です。表示位置、拡大・縮小、タブ、名前の表示はそのままで、テーブルのプロパティ、Diff Viewer、Export image ダイアログは開いたままです。
進行中の操作も終了します。テーブルやメモのドラッグはその場で止まり、Alt + drag はコピーを置かず、カラムのドラッグは終了し、メモのサイズ変更はその場で止まり、テーブルグループのサイズ変更は破棄され、自動レイアウトは通知とともに破棄されるため、どのテーブルも動きません。
再び編集可能になると、エディタは上のコントロールを戻し、閉じられたものは開き直されません。