Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

DBの項目設計を三種類のデータ型で良しとする人

DBの項目の型をVarchar2(255),Numeric(15.2) ,Date の3種類のみで設計されたシステムがありました。それはそれで一つの見識なので、第三者の私が是非をいうのは筋違いかもしれません。しかし、賛同できないのです。主キー項目や索引項目もVarchar2(255)で定義されているんだもの。最近のRDBは可変長項目に索引を張っても負荷にならないのかな。
 立ち話程度で当システムの設計者と話したところ、「三種類の型で設計する画期的なDB設計」という記事が、雑誌かネットに存在していたそうです。(該当するものは見つけられませんでした。) 
その記事に感銘を受けて、以後、このような設計をするようにしている。実装もこれにしたがいコーディングしている。開発もスムーズに出来て、支障はない。ということでした。デスマーチにならなければ、それでいいの?

確かに、3種類しか型を使用しなければ、DB設計は楽です。コーディングは楽ですか。
ある意味で楽かもしれませんが、それの数倍、細かな所での配慮が必要になり余計なコストがかかります。
型を厳格に運用することは、Object指向以前の話だと思っています。厳格に規定することによる、記述の明確化、潜在バグの減少、ソースの見通しの良さ。メリットは一杯あります。 天秤にかけるまでもなく、三種類方式にメリットは無いと思うのですが。私はおかしい?
 記事の真意が不明なので、ピントはずれかも知れませんが、議事を曲解している気がします。入門者とか、簡単なDBなど初心者向けの記事かもしれませんしね。

 

投稿日時 : 2007年5月11日 1:36

Feedback

# re: DBの項目設計を三種類のデータ型で良しとする人 2007/05/11 9:50 Zee

各種高精度を必要とする精密な計算をする場合、
適宜の型に戻す計算を入れたとしても
桁落ちが発生してしまうので、
型の設計には適宜にしたほうがいいと思っています。
(古い考え方なのかな・・・)
演算は単純な方が精度がいいので、変換コードは書きたくないです。(変な気を使うし、バグ取りに時間がかかる。)

# re: DBの項目設計を三種類のデータ型で良しとする人 2007/05/11 12:04 Ognac

>演算は単純な方が精度がいいので、変換コードは書きたくないです。(変な気を使うし、バグ取りに時間がかかる。)数値の精度問題と上記エントリーの問題は異質だと思うのです。
浮動小数点に伴う、精度/桁落ちは不可避の事象ですね。
# 有効数字の概念が浸透してない為なのか、桁落ちで困ってますという相談が定期的に発生してますね
# 固定小数点やBCD方式などが登場してきた訳で。(これ、ネタに使かおぅ)

その意味で必要とする最大の型で統一するのは、至極当然な事だと同意します。キャストによる精度落ちも影響がありますし。

しかし、業務システムのDBでのText項目や、有効桁数の固定している業務項目に適用するのは、疑問が残るのです。

# re: DBの項目設計を三種類のデータ型で良しとする人 2007/05/11 16:26 中博俊

疑問が残るじゃなくって、はぁ?でたたきつぶしてください。
インデックス効率や、精度などもふくめてまだまだX100くらいDBはあほでも使えるものではないです。

話は変わりますが最近だいぶ文章が読みやすくなりましたね。
句読点は,.ではやっぱだめですよ。うんうん。
後もう少し句読点を減らしてほしいかなぁ

# re: DBの項目設計を三種類のデータ型で良しとする人 2007/05/11 18:52 Ognac

>はぁ?でたたきつぶしてください。
がんばってみます。

>後もう少し句読点を減らしてほしいかなぁ
恐縮します。書くという行為は難しいものです、少しは進歩したのかな? ありがたいことです。継続は力ですね。
心がけます。

タイトル
名前
Url
コメント