うーん、俺も業務アプリ屋だけど、基本的にはクラス設計してからテーブルに
落とし込むよ。クラス設計ができて永続化するべきクラスが特定できたら
それをDBに落とし込むのは大概決まった手順でできてしまうから。

もちろん、それでDB的に最高の設計ができるかというとそれは無理だけど、
実用的に問題ないレベルにはできる。でもこういうやり方がベストだなんて
誰にも言えないから、特に問題を感じてないのならそれでいいんじゃないの?

OODBは使ったことがあるけど、メンテナンスは地獄。とてもおすすめできない。
でもキャッシングのメカニズムは魅力だな。