URL : https://www.zumuzack.com/zack/table-define-tool/
Last Updated :
DBからテーブル情報を抽出して テーブル定義書 を自動生成します ( HTML版 / EXCEL版 )
生成される テーブル定義書 (HTML版) には、検索機能 や SQL(一括)生成、DDL生成、コード定義ポップアップ、インデックス/ビュー式/外部キー制約情報/トリガー情報/ファンクション/プロシージャ情報/コード定義一覧 の表示 といった機能が装備されています
(Microsoft Winodws用アプリケーションです)
MySQL (MariaDB)、PostgreSQL、SQLite3、Oracle、SQL Server
※Excel定義書(A5M2版、当アプリ版)、ER図(A5M2)も入力DBとして対応しています
ダウンロードした DatabaseDefine.zip を展開(解凍)します
(./DatabaseDefine/ というフォルダが生成されます)
./DatabaseDefine/ フォルダを削除します
※レジストリ操作はしていないので、フォルダ削除のみになります
起動する
./DatabaseDefine/bin/DatabaseDefine.exe を起動します
動作設定する
「動作設定」ボタンより Settings 画面を開き、DB接続情報 / 出力タイプ / オプション 等の内容を設定します
(Settings)
※ここでは「Output」欄の「HTML」チェックを付けた (HTML版テーブル定義書生成の) 手順とします
テーブル定義書を生成する
「一括(①+②)」ボタンよりコンテンツ(テーブル定義書)を生成します
テーブル定義書を起動する
「HTML定義書参照」ボタンより、コンテンツを参照(利用)します
↓ ※ブラウザが起動します
データ抽出 ① ボタン
データベース (or ER図ファイル) アクセスしてテーブル構造等の情報を抽出します。
定義書生成 ② ボタン
テーブル定義書を生成します。補助情報 (項目名やコード定義、JOIN情報など) のみの修正を反映させたい場合も、このボタンを実行します。
※./DatabaseDefine/output/wwwdir/dbdef/
に出力されます
一括(①+②) ボタン
①ボタンと②ボタンの処理を連続で行うボタンです。
Excel定義書チェック ボタン
入力DBとして指定したExcel定義書ファイルをチェックします。 (入力DBタイプに「Excel定義書」を選択すると使用できるようになります)
※物理DBが構築されていない「設計フェーズ」などで、手動設計したExcelテーブル定義書のチェック作業に利用することを想定しています。結果ファイルは入力Excel定義書と同じフォルダに出力されます。
※以下チェック結果イメージ (入力Excel定義書ファイルに「ERRWARN」シートが追加された形で出力されます)
※チェック対象にできるExcel定義書は 当ツールオリジナルフォーマット と A5M2フォーマット になります
当ツール オリジナルフォーマット
A5M2フォーマット
DDL生成 ボタン
対象テーブルの DDLを一括生成 してテキストファイルに出力します。
予め、データは抽出(①ボタン)しておく必要があります。
※./DatabaseDefine/output/ddl/
に出力されます
メイン画面の"動作設定"ボタンで開きます
ブラウザタイトル
HTML Title
Version
Label入力欄
明細ページの「Ver.」欄に表示されます。
Timestamp
Display欄
タイムスタンプなどを付加した場合の最終的なラベルイメージが表示されます
バージョン表示イメージ
.\DatabaseDefine\output\backup\
です。メイン画面の「バックアップフォルダ」ボタンよりアクセスできます。T0001,T0002,*_TEMP,*_TEST,*_WK
メイン画面の"ユーティリティ"ボタンで開きます
テンプレートExcel(補助用)ボタン
空の DatabaseDefineSubInfo.xlsx を生成します (同名ファイルが存在した場合はバックアップされます)
テンプレートExcel(取込用)ボタン
空の DatabaseDefine_テンプレートA4横/A4縦.xlsx を生成します (同名ファイルが存在した場合はバックアップされます)
※「Class」で種別を選択します
補助情報Excel整形ボタン
DatabaseDefineSubInfo.xlsx ファイルの同一データ(重複行)を排除、並び替えをして
DatabaseDefineSubInfo.xlsx を作りなおします (元の DatabaseDefineSubInfo.xlsx はバックアップされます)
※table.csvシートは重複行排除のみ。このシートの順番が生成後コンテンツのテーブル一覧の並び順になるので、意味のあるテーブル順(例えば機能別のテーブル順にするなど)にしている状態は崩されません。
CSV→Excel生成ボタン
テキストエディタなどで手動作成したCSVを DatabaseDefineSubInfo.xlsx に取り込む機能になります。ボタンをクリックするとフォルダ選択ダイアログが表示されるので、補助情報CSVが保存されているフォルダを選択することで、./bin/excel/DatabaseDefineSubInfo.xlsx に取り込まれます (元の DatabaseDefineSubInfo.xlsx はバックアップされます)
補助情報を設定するためのファイルになります
メイン画面「Settings」欄の「補助情報設定」ボタンでこのExcelが開かれます
設定したら保存してEXCELファイル「DatabaseDefineSubInfo.xlsx」を閉じます (このExcelを開いた状態で実行系ボタンをクリックするとエラーになります)
(イメージ)
↓ ↓ ↓
補助情報は、ExcelがインストールされたPCであれば ./excel/DatabaseDefineSubInfo.xlsx に各設定を保存しますが ExcelがインストールされていないPCの場合はテキストエディタなどで、直接CSVファイルを編集することになります(./bin/csv/)。
※エディタなどで手動作成する場合は、キャラクタコードにご注意ください。~.csv は UTF-8 になります。
※ExcelがインストールされているPCでは、直接CSV編集しても DatabaseDefineSubInfo.xlsx の内容で上書きされてしまいますので、Excelインストール済PCでのcsv直接編集はしないようにしてください。
概要
対象テーブルを設定するシートになります (未設定の場合、指定したユーザーあるいはスキーマ/DB上に存在する全てのテーブルが対象となります。また、table.csv シートへ反映されます。)
カラム | 内容 | 備考 |
---|---|---|
① | テーブルID. | |
② | テーブル名 | |
③ | 説明文 | |
④ | タグ | 種別(トラン/マスタ)などのタグを記載 |
DatabaseDefineSubInfo.xlsx 【table.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
M0001,組織マスタ,組織情報を保存するマスタテーブル,マスタ
M0002,社員マスタ,,マスタ
M0003,メーカーマスタ,,マスタ
M0004,商品マスタ,,マスタ
M0005,ユーザーマスタ,,マスタ
T0001,注文テーブル,,トランザクション
T0002,注文明細テーブル,,トランザクション
W0001,プリンタワーク,プリントデータ用テーブル,ワーク
P0001,ソートテンポラリ,ソート用テンポラリテーブル,テンポラリ
概要
コード定義を設定するシートになります
col-code.csv / table-col-code.csv で適用する項目との紐づけを行うことで画面にポップアップされることになります。
カラム | 内容 | 備考 |
---|---|---|
① | コードID. | |
② | コード名 | |
③ | コード値 | |
④ | コード内容 |
DatabaseDefineSubInfo.xlsx 【code.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
C001,注文ステータス,01,受付
C001,注文ステータス,02,確定
C001,注文ステータス,03,出荷済
C001,注文ステータス,04,受取済
C002,役職種別,1,社長
C002,役職種別,2,部長
C002,役職種別,3,社員
C002,役職種別,4,準社員
C003,性別,1,男性
C003,性別,2,女性
C003,性別,3,不明
C004,削除フラグ,0,未削除
C004,削除フラグ,1,削除済
概要
テーブル項目名を設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | 項目ID. | |
② | 項目名 | |
③ | 項目説明文 |
DatabaseDefineSubInfo.xlsx 【col.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
GOODS_CD,商品番号,商品を一意に表す番号
CRE_REC,登録日,この登録日項目は、汎用的な項目です
ORDER_NO,注文番号,この注文番号項目は、汎用的な項目です
ORDER_STATUS,注文ステータス,この注文ステータス項目は、汎用的な項目です
概要
コード定義と項目との紐付けを設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | 項目ID. | |
② | コードID. | code.csv に設定してあるコードID.を指定 |
DatabaseDefineSubInfo.xlsx 【col-code.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
ORDER_STATUS,C001
POST_CD,C002
SEX,C003
DEL_FLG,C004
※ver.5.5.0 より1つの項目(Col Id.)に複数のコード定義(Code Id.)を紐づけることができるようになりました
DatabaseDefineSubInfo.xlsx 【col-code.csv】シートイメージ
コンテンツイメージ
概要
テーブル固有の項目を設定するシートになります
col.csv が汎用的に項目設定をするのに対し、table-col.csv はテーブル固有の項目設定します
カラム | 内容 | 備考 |
---|---|---|
① | テーブルID. | |
② | 項目ID. | |
③ | 項目名 | |
④ | 項目説明文 |
DatabaseDefineSubInfo.xlsx 【table-col.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
T0001.STATUS,契約ステータス,契約の状態
T0002.STATUS,解約ステータス,解約の状態
T0002.ORDER_NO,注文番号(table-col.csv),この注文番号はT0002専用の項目です(table-col.csvで設定)
※CSVは「①.②,③,④」のフォーマットになります(①と②をピリオド"."でつなぎます)
概要
コード値とテーブル固有の項目とを紐付けを設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | テーブルID. | |
② | 項目ID. | |
③ | コードID. | code.csv に設定してあるコードID.を指定 |
DatabaseDefineSubInfo.xlsx 【table-col-code.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
T0001.STATUS,C010
T0002.STATUS,C020
M0002.DEL_FLG,C006
※CSVは「①.②,③」のフォーマットになります(①と②をピリオド"."でつなぎます) ※ver.5.5.0 より1つの項目(Col Id.)に複数のコード定義(Code Id.)を紐づけることができるようになりました
概要
外部Join情報を設定するシートになります(項目ID.のみでの紐付け)
カラム | 内容 | 備考 |
---|---|---|
① | 項目ID. | |
② | テーブルID. | table.csv に設定してあるJOIN先のテーブルID.を指定 |
DatabaseDefineSubInfo.xlsx 【join-col.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
CRE_EMP_CD,M0002
UPD_EMP_CD,M0002
概要
外部Join情報を設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | テーブルID. | |
② | 項目ID. | |
③ | テーブルID. | table.csv に設定してあるJOIN先のテーブルID.を指定 |
DatabaseDefineSubInfo.xlsx 【join-table-col.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
M0002.ORG_CD,M0001
M0004.MAKER_CD,M0003
T0001.USER_ID,M0005
T0002.ORDER_NO,T0001
T0002.GOODS_CD,M0004
※CSVは「①.②,③」のフォーマットになります(①と②をピリオド"."でつなぎます)
概要
トリガー名(論理名)やコメントを設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | テーブルID. | |
② | トリガーID. | |
③ | トリガー名 | |
④ | 説明文 |
DatabaseDefineSubInfo.xlsx 【trigger.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
T0001,TR_T0001_INS,T0001トリガー1,コメント1
T0001,TR_T0001_UPD,T0001トリガー2,コメント2
T0001,TR_T0001_UPD2,T0001トリガー3,コメント3
T0001,TR_T0001_DEL,T0001トリガー4,コメント4
概要
ファンクション/プロシージャ/パッケージの名称(論理名)やコメントを設定するシートになります
カラム | 内容 | 備考 |
---|---|---|
① | ファンクション/プロシージャID. | |
② | ファンクション/プロシージャ名 | |
③ | 説明文 | |
④ | タグ | タグを記載 |
DatabaseDefineSubInfo.xlsx 【func_proc.csv】シートイメージ
コンテンツイメージ
CSVサンプル (手動設定時の参考)
FUNC_01,ファンクション1,補助情報のコメント1,タグ1
PROC_01,プロシージャ1,補助情報のコメント2,タグ2
PROC_02,プロシージャ2,補助情報のコメント3,タグ3
PROC_03,プロシージャ3,補助情報のコメント4,タグ4
テーブル一覧並び順
テーブルの並び順は、補助情報ファイルの「table.csv」シート、「func_proc.csv」シートの順になります。
このシートが空の場合はテーブル/ビューIDのアルファベット順になります。
このシートに載っていない(未記載)の場合は、載っているテーブルの最後尾にアルファベット順で表示されます。(ファンクション/プロシージャ/パッケージも同様の並び順になります)
※トリガーは実行タイミング(BEFORE/AFTER)、実行順が設定されているので、「trigger.csv」シート順にはなりません。(命令(I/U/D)、タイミング、実行順の固定の並びになります)
予約語設定
ファイルに登録した予約語はビュー式やトリガーソースで強調文字となります。
./bin/sql_reserved_words.txt
※ファイルは削除してプログラムを再起動すると復活します。ファイルを空にすると強調されなくなります。
※アプリケーションで生成されるフォルダ/ファイルも記載しています
./DatabaseDefine/
bin/
a5er/ ※A5ER図ファイル保存場所としてご利用ください
csv/ ※ExcelなしPCの場合のみテキストエディタで編集
code.csv
col.csv
col-code.csv
func_proc.csv
join-col.csv
join-table-col.csv
table.csv
table-col.csv
table-col-code.csv
trigger.csv
excel/
DatabaseDefineSubInfo.xlsx ※補助設定情報ファイル★
pic/ ※ロゴ画像ファイル保存場所としてご利用ください
sqlite/ ※SQLiteファイル保存場所としてご利用ください
sshauth/ ※SSHトンネル用鍵ファイル保存場所としてご利用ください
x64/
SQLite.Interop.dll
x86/
SQLite.Interop.dll
BouncyCastle.Cryptography.dll
BouncyCastle.Cryptography.xml
DatabaseDefine.exe ※メインプログラム(起動プログラム)
DatabaseDefine.exe.config
DatabaseDefine.pdb
DatabaseDefine.xml
HtmlAgilityPack.dll
HtmlAgilityPack.pdb
HtmlAgilityPack.xml
Microsoft.Bcl.AsyncInterfaces.dll
Microsoft.Bcl.AsyncInterfaces.xml
Microsoft.Bcl.HashCode.dll
Microsoft.Bcl.HashCode.xml
Microsoft.Extensions.DependencyInjection.Abstractions.dll
Microsoft.Extensions.DependencyInjection.Abstractions.xml
Microsoft.Extensions.Logging.Abstractions.dll
Microsoft.Extensions.Logging.Abstractions.xml
MySqlConnector.dll
MySqlConnector.xml
Npgsql.dll
Npgsql.xml
Oracle.ManagedDataAccess.dll
Renci.SshNet.dll
Renci.SshNet.xml
sql_reserved_words.txt ※記載した予約語はコンテンツ上で強調表示されます
System.Buffers.dll
System.Buffers.xml
System.Collections.Immutable.dll
System.Collections.Immutable.xml
System.Diagnostics.DiagnosticSource.dll
System.Diagnostics.DiagnosticSource.xml
System.Formats.Asn1.dll
System.Formats.Asn1.xml
System.IO.Packaging.dll
System.IO.Packaging.xml
System.IO.Pipelines.dll
System.IO.Pipelines.xml
System.Memory.dll
System.Memory.xml
System.Numerics.Vectors.dll
System.Numerics.Vectors.xml
System.Runtime.CompilerServices.Unsafe.dll
System.Runtime.CompilerServices.Unsafe.xml
System.Text.Encodings.Web.dll
System.Text.Encodings.Web.xml
System.Text.Json.dll
System.Text.Json.xml
System.Threading.Channels.dll
System.Threading.Channels.xml
System.Threading.Tasks.Extensions.dll
System.Threading.Tasks.Extensions.xml
System.ValueTuple.dll
output/
backup/ ※バックアップフォルダ
databasedefine/
databasedefinesubinfo/
wwwdir/
commonxml/
commoninfo.xml
ddl/ ※DDLファイル出力フォルダ★
excel/
DatabaseDefine.xlsx ※EXCELテーブル定義書★
foreignkeyxml/
indexxml/
log/ ※ログ出力フォルダ
srcxml/
tablexml/
triggerxml/
viewxml/
wwwdir/ ※コンテンツフォルダ(HTMLテーブル定義書)
dbdef/
css/
define.css
perfect-scrollbar.css
db_src/
entity/
entity_fx/
entity_idx/
entity_trig/
entity_view/
images/
arrow1.png
arrow2.png
arrows.png
checked.png
favicon.ico
notchecked.png
js/
common.js
data.js
database.js
disptitle.js
environment.js
jquery.min.js
pagetitle.js
perfect-scrollbar.min.js
realtimesearch.js
sql_reserved.js
sqlstatement.js
sqlstatement_parts.js
tables.js
other/
CodeInfo.html
dummy.html
index.html ※HTMLテーブル定義書★
manual/
images/
manual.html ※当ファイル
manual_cont.html
licenses.txt
readme.txt