正規化?

同じ住所に二つの店があることがあるので店テーブルと住所テーブルは1対多にするものかと思っていたが、果たして同じ敷地に二つの店を持つ顧客が両方同じ住所を参照するように設定するかというと、それは難しいことに気づいた。
住所データを先に作ってから店を作るのも顧客からしてみれば順序が逆だし(住所は店に属するデータだから)。
それに同じ住所を参照していて片方だけ変更したらもう片方も変更されるってことに気づけるかどうか、そしてそれが嫌な場合どういうインターフェースを用意すればいいかと考えるとかなり難しくなってきた。変更されたらコピーという手もあるけど変更されたかどうかチェックするのも面倒だ。
それで住所と店は1対1にして、さしあたり初期値に会社の住所を入れておくだけにした(観光用なのでだいたい会社と店は一緒)。
そしたらユーザーインターフェースも単純になって楽になった。正規化のしすぎもよくないね。いや、正規化はされたままか。