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

テーブル関連機能

作成済みのテーブルとメモに対する操作(選択、移動、コピー、色の指定、各テーブルに表示する内容の設定)と、その周辺のキャンバス操作をまとめています。
前半はテーブルとメモの操作、続いてテーブルのプロパティ、インデックス、テーブルの自動配置、データベースベンダー、最後にキャンバス自体のキャンバスツールバー、拡大・縮小、移動、Diff Viewer を扱います。

複数選択

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

  • Ctrl + drag (Windows/Linux) or ⌘ + drag (Mac)
  • Ctrl + click (Windows/Linux) or ⌘ + click (Mac)
  • Ctrl + A or Ctrl + Alt + A (Windows/Linux)、⌘ + A or ⌘ + ⌥ + A (Mac)

メモも同じ方法で選択でき、どちらの全選択ショートカットもすべてのテーブルとメモを一度に選択します。
Ctrl + A はキャレットに譲るため、セルの編集中はダイアグラムではなくテキストを選択します。
対象は、選択範囲が端に触れただけでは選択されず、中心を覆ったときに選択されます。

demo-table-select

共同編集中は、各参加者の選択、フォーカスしているセル、選択範囲が参加者ごとの色でキャンバスに描画されます。共同編集を参照してください。

複数テーブルの移動

すでに選択に含まれているテーブルやメモをドラッグすると、修飾キーなしで選択全体が一緒に移動します。
選択の外にある対象をドラッグすると、選択がその対象に置き換わり、それだけが移動します。mod キーを押しながらドラッグすれば、どちらの場合も選択は維持されます。Ctrl + drag (Windows/Linux) または ⌘ + drag (Mac)

demo-table-multiple-move

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

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

コピーしたテーブルは名前、コメント、カラム、色を保持し、コピーしたメモは本文、サイズ、色を保持します。コピーは元の名前をそのまま引き継ぎます。
インデックスとリレーションシップも一緒にコピーされます。インデックスはコピーしたテーブルへ丸ごとコピーされ、リレーションシップは両端のテーブルがどちらもコピー対象に含まれているときにコピーされます。片側だけのリレーションシップは、元のテーブルを指したまま残るのではなく破棄されます。
貼り付けたコピーが新しい選択になり、同じコピーを繰り返し貼り付けると毎回 50px ずつずれるため、重なって積み上がることはありません。

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

テーブルとメモの複製

Alt を押しながら、テーブルやメモをマウスの左ボタンでドラッグします。
半透明のプレビューがポインタに追従し、ボタンを離すとプレビューの位置にコピーが配置されます。
つかんだ対象がすでに選択に含まれている場合は、選択全体が複製されます。含まれていない場合は、ポインタの下の対象が新しい選択になります。
動かさずに Alt + click すると、コピーは右下に 50px ずれた位置に配置され、その位置がすでに埋まっている場合はさらにずれた位置に配置されます。

複製が引き継ぐ内容は貼り付けと同じで、名前、コメント、カラム、色、メモのサイズに加えて、コピー対象の中で完結するインデックスとリレーションシップも引き継ぎます。

テーブルとメモの削除

現在選択しているテーブルやメモを削除します。
ショートカット: Ctrl + Backspace (Windows/Linux) または Ctrl + Delete (Windows/Linux) または ⌘ + Backspace (Mac) または ⌘ + Delete (Mac)

demo-table-remove

テーブルとメモの色指定

カテゴリごとに区別できるよう、色を指定できます。
テーブルやメモの上部にある色帯をクリックすると、カラーピッカーが開きます。色はクリックしたものだけでなく、選択しているすべてのテーブルとメモに適用されます。

demo-table-color

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

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

  • Table Comment
  • Column Comment
  • DataType
  • Default
  • Not Null
  • Unique
  • Auto Increment
  • Relationship

demo-view-options

テーブルのプロパティ

選択したテーブルのプロパティパネルを開きます。 テーブルのコンテキストメニュー、またはショートカット Alt + Space で開きます。 Indexes、Schema SQL、Code Generator の 3 つのタブがあります。 パネルの上部には最近開いた 5 つのテーブルが残るため、開き直さずにテーブル間を移動できます。

インデックス

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

左側にはテーブルのインデックスが一覧表示されます。+ で追加します。
各インデックスには、ユニークにする UQ トグル、名前の入力欄、削除する x があります。

右側にはテーブルのカラムがチェックボックス付きで一覧表示されます。左側でインデックスを選択するまでは編集できません。
カラムをチェックすると選択中のインデックスに追加され、チェックを外すと削除されます。
選択中のインデックスのカラムは下部に一覧表示されます。グリップハンドルでドラッグすると並べ替えられ、行の ASC または DESC をクリックすると並び順が切り替わります。

テーブルの自動配置

関連するテーブルが近くに集まり、重なったテーブルが離れるように、すべてのテーブルをキャンバス全体に配置します。
キャンバスのコンテキストメニュー、またはクイック検索から実行します。

配置が落ち着くまではダイアグラム全体のプレビューが開き、表示される通知に ApplyCancel があります。
Apply を押すと、その時点の位置で確定します。押さない場合も、静止した時点で配置は自動的に適用されます。Cancel または Escape ではダイアグラムは元のままです。
結果は 1 件の履歴として記録されるため、1 回の Undo ですべてのテーブルが元の位置に戻ります。

ダイアグラム全体に Force Simulation を実行して動作し、リレーションシップがテーブルを引き寄せ、隣り合うテーブルは互いに押し離します。

demo-automatic-table-placement

データベース

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

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

この設定は、書き出す Schema SQL の構文、DataType の自動補完、生成されるコードや読み込んだスキーマで解決される型を決定します。
TIMESTAMP WITH TIME ZONEINTERVAL DAY TO SECOND のような複数語の型名は、Schema SQL の読み込み時に引数リストを含めてそのまま保持されます。

データベース選択メニュー

demo-data-type-autocomplete

キャンバスツールバー

キャンバスの左上には小さなツールバーが浮いていて、キャンバス自体に対する道具がまとまっています。

  • ハンドとポインタ。既定はポインタで、ハンドにすると空いている場所だけでなくテーブルの上でもドラッグが表示位置の移動になります。Space で切り替えます。
  • 4 種類のリレーションシップ記法。リレーションシップを開始するときのものと同じです。編集の開始を参照してください。リレーションシップはテーブルを 2 つクリックして描くため、記法を選ぶと道具はポインタに戻ります。
  • Zen モード Alt + Z。キャンバスとこのツールバーだけを残して、ほかをすべて隠します。もう一度 Alt + Z を押すか、ボタンを押すと元に戻ります。

各ボタンはツールチップに自身のショートカットを表示します。

拡大・縮小

mod キーを押しながらマウスホイールで拡大・縮小します。Ctrl + Wheel (Windows/Linux) または ⌘ + Wheel (Mac)。ホイールだけを回すとキャンバスの表示位置が移動します。
ショートカット: Ctrl + Plus (Windows/Linux) または ⌘ + Plus (Mac)、Ctrl + Minus (Windows/Linux) または ⌘ + Minus (Mac)
Ctrl + O (Windows/Linux) または ⌘ + O (Mac) は、画面の中心を保ったまま 100% に戻します。

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

demo-zoom

キャンバスの移動

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

キャンバスの空いている場所をドラッグすると表示位置が移動します。Space でハンドツールに切り替えれば、テーブルの上を含めてどこからでもドラッグできます。ホイールでも移動でき、Shift + Wheel は左右に移動します。
移動できる範囲はダイアグラムに従います。テーブルを画面の外へ少し押しやることはできますが、その先の何もない空間までは出られません。

右上のミニマップは、ダイアグラムが占める範囲に余白を加えた領域を表示します。クリックするとその位置へ表示が移動し、表示範囲の枠をドラッグすると表示位置が移動します。縮小するほど、表示範囲の枠はミニマップのより広い部分を覆うように大きくなります。
右端と下端のスクロールバーも同じ範囲を表します。その軸に動かす余地があるときだけ表示されるため、空のドキュメントではスクロールバーもミニマップも表示されません。

移動した結果、テーブルもメモも画面に残らなくなると、下端に最も近い対象の方向と距離を示す丸いボタンが表示されます。クリックするとその対象が画面の中央に来ます。

Diff Viewer

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

Diff Viewer のコンテキストメニュー

ビューはキャンバスの上に開き、左に変更点、その隣に保存したドキュメントと現在のドキュメントが並びます。
両側とも読み取り専用のため、ドキュメントが変更されることはありません。ビューは、開くときに表示される通知の Close ボタン、または Escape で閉じます。

diff-viewer