はじめに
UMLで記述したER図のデータからGoogleSpreadSheetのテーブル定義書を自動生成する方法の解説です。
ER図作成からシステム開発を開始する人にはうってつけの方法です。
サンプル動画
手順
- UMLで記述したER図をGoogleDriveの任意のディレクトリに保存します
- 新規でGoogleSpreadSheetを作成します。SpreadSheetのタイトルをUserとします
※ER図に記載したテーブルのうち、タイトルと同一のカテゴリのテーブルのみを読み込みます - ツール → スクリプトエディタを選択し、AppsScriptエディタを開きます
https://github.com/stepupdream/import-erdiagram/blob/main/jp.js
こちらのソースコードをエディタに貼り付けます。 - 1行目のdriveFolderIdの部分をER図が保存してあるGoogleDriveのフォルダIDに変更し、変更を保存します
フォルダーIDとは:https://www.yukibnb.com/entry/2019/11/26/163738#公式 - スクリプトエディタは閉じ、GoogleSpreadSheetをリロードします
- リロードするとER図を取り込むというメニューが追加されるので「全データを取り込む」を実行します
UMLでER図を記述する方法
https://qiita.com/nagareboshi/items/8369b554d07b27760e59
ER図のサンプル
@startuml
'区分罫線を非表示
hide empty members
'マークと背景色の定義
!define master_data_db #E2EFDA-C6E0B4
!define user_db #FCE4D6-F8CBAD
!define MASTER_DATA AAFFAA
!define User FFAA00
'設定職を定義
skinparam class {
BorderColor Black
ArrowColor Black
}
package "ユーザー管理" as user {
entity "accounts [アカウント]" as accounts <<U, User>> user_db {
+ id : bigInteger [ID]
# user_id : bigInteger [ユーザID]
}
entity "users [ユーザー]" as users <<U, User>> user_db {
+ id : bigInteger [ID]
name : string [名前]
}
entity "prefectures [都道府県]" as prefectures <<M, MASTER_DATA>> master_data_db {
+ id : integer [ID]
name : string [県名]
}
}
'関係図を定義
users ||-up-|| accounts
'テーブルメモ
note right of prefectures : メモです
@enduml
記述ルール
entity "テーブル名 [テーブル日本語名]" as テーブル名 <<カテゴリマーク, カテゴリ>> コネクション名 {
カラム名 : データ型 [カラム日本語名]
}
補足
- 「現在のシートのみを取り込む」は、「全データを取り込む」実行時に生成されるデフォルトデータ(1行目のデータ)が存在する時のみ実行可能です
- 「現在のシートのみを取り込む」は、シート名と同一のUMLファイル名のER図を読み取ることができます
- デフォルトデータに追加する形で自由にシートに列を追加可能です。ER図では表現しきれなかった内容などを別途追記するときに便利です。追加した列はER図を再読み込みしても消えることはありません
- ER図とテーブル定義の二重編集を避けるため、テーブル定義書の自動読み込みセルはスプレッドシートの機能のセルの保護をかけておくと便利です