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

データベースの一つのテーブル内の項目数の現実的な数の制限は?

商品管理用のテーブルを作ろうとします。ある商品Aの商品に関する情報の項目が100、その商品の在庫情報が100、その他の情報が100あるとします。

このような場合、一つのテーブルに300項目入れるのはよくない方法でしょうか?
別のテーブルにしてjoinすればいいとも思いますが、処理の負荷の面で、それぞれ必要な情報だけを取り出す処理をしていれば、300項目あっても別に構わないのかなとも思いますが、分けるのと分けないのはどちらがいいでしょうか?

ちなみにこのテーブルは参照80%、アップデート20%くらいの仕様頻度です。

●質問者: dingding
●カテゴリ:インターネット
✍キーワード:いいとも アップデート データベース 仕様 在庫
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●28ポイント

入れるなとは誰も言えないですけど正規化を行わないテーブル構成は破綻をきたしますよ(Accessでは255フィールドまでといったようにデータベースによっては300フィールド自体がダメって場合もありますが、それはまた別の話ですね。)

http://www.kogures.com/hitoshi/webtext/db-seikika/index.html

「商品Aの商品に関する情報の項目が100」

「その商品の在庫情報が100」

「その他の情報が100」

少なくとも、この3つ実際にはそれぞれが複数に分かれると思うので合計で6?10個程度のテーブルに分かれるはずです。

◎質問者からの返答

ありがとうございます。


2 ● b-wind
●42ポイント

DBにも寄りますが、MySQL の InnoDB の場合で、

http://dev.mysql.com/doc/refman/4.1/ja/innodb-restrictions.html

1 つのテーブルに作成できるカラムは 1,000個 までである。

300 程度であればさほど問題ではないと思います。


それぞれの情報が1対1で対応しているなら JOIN のコストの方が高くつきます。

1対多、もしくは多対多の関連であれば正規化の意味で当然分割すべきでしょう。


基本的には以前の回答と同じです。

question:1163072424

◎質問者からの返答

前回100項目で質問していたのですが、その後、追加項目が増え、200項目が目前になってきて、心配になり質問させていただきました。

1対1の情報ですので、今のテーブルを分けずに進めようと思います。

とても安心できました。

ありがとうございました。

関連質問


●質問をもっと探す●



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