DB 設計でいまさら悩む

daily と銘打っている以上,平日は一日一つは記事を書きたいと心がけているのですが,今日は忙しくてしかもネタがありませんでした。
なにをやってたかというと,DB の構造設計です。DBDesigner というとてもよくできたフリーウェアを使って設計をしていました。英語版なのでちょっととっつきが悪いですが,DBDesigner 4 の日本語マニュアルもありますし,DB の基本用語なんてだいたい英語なのでそれなりに使えます。設定ファイルをごにょごにょすれば日本語化できるかなとも思ったんですが,1000個ほどもありますし,どうやらメニューのアクセラレータを自動設定する仕組みらしく,メニューが化けてしまってあきらめました。

既存のテーブルの再デザインを行っていたのですが,結構悩んだのが,m:n のようなリレーションを貼っている場合,外部キーをどちらにもっていくか,という点でした。
新規に組む場合だととくに悩まないのですが,人が作ったものの再デザインだと(そもそも m:n が整理されずにあること自体が悪いのですが)わけわからなくなりますね。結局,基本にたちかえって冷静に has-a 関係を考えて対処しました。
正規化とか基本的なところはおさえたつもりだったのに,われながらきちんと基礎を学習していなかったんだなぁ。