- 締切済み
テーブル設計において
データベース(RDB)のテーブルを設計する際に、 データの連結の関係を考えた際に、連結の関係は簡単にしておいたほうがいいのかそれとも実登録データの量をとにかく少なくするように したほうがいいのかで悩んでいます。 今現在やっているのがデータベースのデータ量を少なくするためといって、非常にややこしくなっています。 正直今現在DBに登録するデータというのがテキストおよび数値データのみで、画像や動画といったバカデカイコンテンツデータは登録するようになっていないシステムにおいて、HDDやストレージがパンクするといったことがまずありえないぐらいの容量はあるんじゃないかなとおもっています。これってどうなんだろうと思って質問しています。皆さんはどう考えていますか?
補足
再度のご回答ありがとうございます。 ですがまだ認識にずれがあります。 >「HD容量が巨大になっても正規化しないといけないか」という意味かな ここが違います。 あえていうなら、むしろ「HD容量が巨大になっても正規化外しをしないといけないか」です。 私は正規化しなくていい、ましてや正規化がめんどくさいと考えているわけではありません。 (というかこの質問でそのように感じられるなら私の表現力不足です。orz) 個人的な考えでしかありませんが、基本的にシステムの設計する際に、考える必要があることとして、拡張性はかなり大きいと考えています。 機能追加や機能変更、運用の変更への対応などが起きないシステムって存在しないと思います。 だとした場合、十分な正規化は行い、その上でシンプルな構成であることのほうが大事ではないでしょうか?処理するデータについても確かに能力が上がった分処理する量が増えるとしても、それを意識する必要があるほど増えているのか?という疑問があります。 正直、正規化外しによる効果が10倍である! としても、30年前は、処理時間が30分かかっていたものが3分になっていたとした場合、ハードの処理速度があがり、実際の処理時間が0.001秒を5分に1回ぐらいしか使わないとしたら、処理時間0.01秒にするために柔軟性すてていいのか?という気がします。 逆にどんなにシンプルにしても遅くて運用になりませんじゃ意味は皆無なわけですし。 スピードを優先しているか、拡張性を優先しているか というのをDBのテーブル設計レベルでどう意識しているのかなというとこが聞きたかったわけです。 なので、 > 能力が上がった分、処理する量も増えてきていますから > 今でも処理速度を速める工夫は必要です(たぶん今後も) というのはごもっともです。 ということで、やっと聞きたいことがまとまった気がしますが、個人的にはどっちを優先されていますか?