ブラウザでER図が書ける!wwwsqldesigner

2009 年 4 月 2 日 by 山平

ブラウザでER図の編集ができる「wwwsqldesigner」がすごいので紹介します。

wsd00_sample
本家サイト:http://code.google.com/p/wwwsqldesigner/

本家サイトが英語で、かつ、かなりあっさりした説明しかないようです。
日本語情報を探してみたのですが、古いバージョンのものしか見つからなかったので、調べた結果をメモしておきます。
なお、私が調査したのは、Ver.2.3.2です。

日本語情報:
ウノウラボ Unoh Labs: ブラウザでER図が描ける「WWW SQL Designer」紹介(Ver.1.3.4)
floatingdays: WWW SQL Designerのインストール&設定(Ver.2.0.1)
floatingdays: WWW SQL Designerの Save ・ Loadをスマートに改良(Ver.2.1.1)

旧バージョンの情報ではwebサーバにインストールして利用するという記述もありましたが、現バージョンではwebサーバがなくてもブラウザだけで実行できます。
その際の保存と読込にはxmlを使用します。

wwwsqldesigner(Ver.2.3.2)にできること

  • 言語選択
  • 対象DBの選択(mysql, sqlite, web2py, mssql, postgresql)
  • CREATE文の作成(選択した対象DBの形式で出力)
  • ER図の作成
  • 既存DBからER図を作成(mysqlのみ)
  • ER図の保存、読込
    • クライアント側
        XMLでの入出力(コピペで保存、再開)
    • サーバ側(phpまたはperlの動作環境が必要)
        ファイルに保存(phpまたはperl)
        DBに保存(phpのみ、mysqlまたはsqlite)

wwwsqldesigner(Ver.2.3.2)できないこと

  • 日本語表示
  • 主キー以外をFKにしたリレーション
  • リレーションのみ削除
  • 認証などサーバ側の細かい制御(保存と読込以外の機能なし)

直感的でない操作について

wwwsqldesignerはそのシンプルさでほとんどの操作を直感的に行なえますが、いくつかの操作でやや分かりにくい部分があるので、それについて補足しておきます。

外部キーの設定、追加、削除

あるテーブルの主キーを別のテーブルの外部キーにする操作は、既存のフィールドに対する操作と、外部キーとしてフィールドを追加する操作の2種類があり、やや混乱しますので図解します。

1.親テーブルに子テーブルのキーを追加する

wsd01_fk00_select
まず、「子テーブルの主キー」を選択します。
「Create foreign key」、「Connect foreign key」のボタンがアクティブになるので、「Create foreign key」をクリックします。

wsd03_fk02_create01

ボタンのラベルが「[click target table]」に変化するので、親テーブル(テーブル名部分)をクリックします。
これで親テーブルに子テーブルへの外部キーが作成できました。
なお、「[click target table]」ボタンを押したり、テーブル以外のエリアをクリックするとキャンセルできます。
また、作成されるフィールド名の初期値はオプション画面で設定できます。

2.親テーブルのフィールドを子テーブルの外部キーにする

wsd03_fk03_connect00
まず、「子テーブルの主キー」を選択します。
「Create foreign key」、「Connect foreign key」のボタンがアクティブになるので、「Connect foreign key」をクリックします。

wsd04_fk04_connect01
ボタンのラベルが「[click target row]」に変化するので、親テーブルの対象フィールドをクリックします。
これで対象フィールドが子テーブルの外部キーになりました。
なお、「[click target row]」ボタンを押したり、フィールド以外のエリアをクリックするとキャンセルできます。

リレーションのみを削除する機能がないため、一旦フィールドごと削除しなければいけないので注意が必要です。

再読み込みの必要な設定

オプション機能として、ER図をデザイン/CREATE文を出力するターゲットDBを変更できるのですが、変更後にリロード(再起動?)しないと有効になりません。
これは設定項目がクッキーに保存され、初期化時にのみ評価されているからのようです。
なので当然、クッキーが有効でないと利用できません。

wsd03_option00
オプション項目名に「*」がついている項目(言語、ターゲットDB、リレーションの線)はリロードが必要です。

【補足】設定ファイルのデフォルト設定を書き換えることも可能ですが、ここでは触れません。

webサーバを利用する際の注意

詳しくは取り上げませんが、webサーバを利用する場合にはセキュリティに十分注意する必要があります。
wwwsqldesignerのバックエンドが脆弱とは言いませんが、最低でも「/backend」配下の利用しないサーバスクリプトは削除して利用することをお奨めします。

以上です。

タグ: , ,

TrackBack