人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ブログサービスなどのDB設計について。

一般的にブログなどのWebアプリケーションは裏でDBが動いていると思いますが、DBはテーブルを作成する時に文字数の上限を決めると思います。ブログの記事などはかなり長い文字列になるので、大きめのサイズのフィールドを設計すると思うのですが、記事によっては短い記事もあるのでそうしたときには確保した容量が無駄になってしまうようにも思います。

このようにとても長い文字列が入る可能性もあるし、短い文字列が入る可能性もあるという時、DB(MySQLをイメージしています)ではテーブルを作る時、長い文字列分のサイズを確保する、というのが一般的でしょうか?あるいは、何か別の良い方法があるでしょうか?

●質問者: koime_ryokutya
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● まこっ

MySQLはあまりしらないですが、「確保した容量が無駄になる」ということはないです。。

DBだと文字列型はいくつかあるのですが、可変長のデータ型を使えばレコード毎に必要な分だけ使われます。

CHAR:固定長

VARCHAR:可変長

BLOB:可変長

固定長というのは、CHAR(5)というフィールドを用意したとして、データを登録するときに「aa」という文字列を登録したらそのフィールドには「aa△△△」(△はスペース)というデータが登録されるのです。

フィールド定義の5バイトのうち、「aa」の余り3バイトをスペースで埋めるような領域の使われ方するのが固定長。

可変のものはVARCHAR(n)の「n」で定義した最大値まで領域を確保でき、上の例でいくと「aa」が登録されて実レコードは2バイト使われるというものです。

いちおうMySQLのリファレンスのリンクをつけておきますが、これはMySQLとかOracleとかそういう話というよりはRDBMSの基本的なことなので、そういうところから勉強したほうがいいかも。

あまりうまい説明ではないけど、RDBMSの基本とかそういうのをGoogleで調べてみましょう。。

http://dev.mysql.com/doc/refman/4.1/ja/blob.html

http://dev.mysql.com/doc/refman/4.1/ja/storage-requirements.html

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ