ERモデリングツールでOSSの、「DBDesigner」の日本語化をyossyさんがされていたので紹介です。
このソフトER図つくりながら、そのままクエリ発行してDBに反映させることができるので、論理設計レベルであればこのソフトだけで完結できてしまいます。windows, redhatで使えます。(fc6も動作できるようにしているようです。)
外部参照が2段レベルであれば、サクサク使えるので便利なのではないでしょうか。
ただ、ちょっと気になるのが、下記のように3重以上に多重に外部参照したときに、3段目のエンティティになぜか1段目のエンティティのカラムがかってに作られてしまう点です。しかも、2段目が複数エンティティから参照されたときだけ起きているっぽい・・・
Entity 3 = FK => Entity2(id) = FK => Entity1 (id)
Entity3は
- id(PK)
- entity2_id(FK)
- content
Entity2は
- id(PK)
- entity1_id(FK)
- content
Entity1は
- id(PK)
- content
上記のようにしたいですが、
Entity3が
- id(PK)
- entity2_id(FK)
- entity1_id(FK)
- content
となってしまうのです。用途によってはこれでもいいんですが、Entity3とEntity1と結合するパターンが存在しない場合、なんか無駄です。バグってるんすかね。
DBDesignerはまだまだ不安定なところはありますが、データベースの論理設計レベルでつかってあげる分には非常に便利です。