共感
http://genzou-postit.blogspot.com/2008/10/blog-post_18.html
- テーブルAのpk:x
- テーブルBのpk:x,y
- テーブルCのpk:x,y,z
テーブルAとBは1:n、テーブルBとCは1:nの関係です。
これ、おいらも嫌いな構成。主キーの持ち回りですね。
例えば10年前のマシンとかだとやっと200MHzいったあたりで、連結はそれなりにマシンパワーを食う処理でした。ですから、連結先からデータを取得できるのはわかっていても取得しないという現実的な理由も承知しています。
また、値の重複でもいいですけど、それによる弊害の回避をする独自のフレームワークやライブラリ、管理ツールをすでにそろえているということならばかまいません。結局テーブルの設計だけですべてが決まるわけではないですから、トータル的に良いほうを選ぶだけですから。でも、そんなのは大概用意されてないですよね。
制約についても同じ意見です。
これトランザクションなしでリカバリする場合が少し面倒だという程度でしょうか。
思い当たるのはAccessが運用していると制約を頻繁に壊すので悪いイメージがあるのでしょうか。