mysql:3675
From: Akihiko Shinohara <Akihiko Shinohara <sino@xxxxxxxxxx>>
Date: Thu, 24 May 2001 12:19:34 +0900
Subject: [mysql 03675] Re: ENUM 、 SET 、 CHAR(1) の選択基準に迷います。
篠原です。 From: Kouichi Matsumoto <k-m@xxxxxxxxxx> Subject: [mysql 03664] ENUM 、 SET 、 CHAR(1) の選択基準に迷います。 Date: Wed, 23 May 2001 22:37:56 +0900 Message-ID: <20010523223712.9D3C.K-M@xxxxxxxxxx> > フォームのCheckboxで趣味を30個から選択登録し、検索も行う場合 > CHAR(1)よりSETやENUM型の方が良いでしょうか? 私が考えるメリット、デメリットは... [メリット] - まじめに正規化を考えるならば別表になるところを、 一つの表で管理できる。 - 項目に何が設定されるのか? という事がわかりやすい。 - また、変更も一カ所でいい。 (動的にこの項目リストを読んでメニューを作成する プログラムにしておけば、変更が楽) [デメリット] - 他のDBには無い(と思う)ので、移行をする時に困る - 項目のリストを変更する時には、インデックスが 変らないように変更してあげる必要があると思う。 安全にやるなら、データのストアとロードが必要かも。 > あと、CHAR(1)とTINYINTの採用基準も迷ってしまいます。(^^;) 将来的に、数字しか入らないのは、INT 将来、数字以外も入れるかも? というのは、CHAR にしときます。 データのサイズを押さえたい場合、できるだけ領域をとらない 型を選択する事も必要だと思います。 # これは基本だけど、拡張性とか分かりやすさを犠牲にする場合も # あると思います。 スピードについては、やってみないとわかりません。 テストデータを作成して埋め込んで、テストする事は 必要だと思います。 ___________________________________________ / Akihiko Shinohara /Hoct*Systems.Co.,Ltd / / http://www.hoctsystem.co.jp/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3664 2001-05-23 22:37 [Kouichi Matsumoto <k] ENUM 、 SET 、 CHAR(1) の選択基準に迷います。 -> 3675 2001-05-24 12:19 ┗[Akihiko Shinohara <s] 3681 2001-05-25 02:19 ┗[とみたまさひろ <tomm]