トリガを使うなら、データの整合性はトリガに管理させる。各プログラムで各々実装するのではなく、整合性処理はトリガに集約する。標準オブジェクトに必須項目にしたいときは、レコードタイプを作って入力規則で対応するようにする。abstractクラスを作るならvirtualクラスにする。テストコードが書けないから。virtualはなるべく全てのメソッドにつけたほうが、いざパッケージ後にvirtualつけようとしても遅い。あとgetter/setter変数はオーバーライドできないので、やっぱり使わない方がいいと思う。積み上げ集計項目でレコード数の合計で集計しないほうがいい。ストレージでデータ件数が多くなって件数を減らすことを考慮しないといけないときに困る。データ件数が増えるとずっとこれに悩まされる。数値項目として持っておいたほうがよい。