2012-01-30 14 views
0

私はmysqlにデータ型の変更に関する質問があります。Mysqlデータ型

3 = 4 =承認された5 =レビュー

私の質問を中断し、私はテーブルの列は、0 =保留中のこれらの値を持つことになりますどの

状態と呼ばれる、1 =アクティブ、2 =拒否した

、使用する最良のデータ型は何ですか。 は、そのうちの一つが使用することをお勧めし

Char(1) 
Tinyint(1) 
SmallINT(1) 
INT(1) 

です。

私はこれを調べるために研究していましたが、私は正解を得ていません。

アドバイスをしてください。

はそれらが今まで許される唯一の5つの値である場合、1バイトのデータ型でtinyint型を、使用あなた

答えて

1

ありがとうございます。これにより、0-255(符号なし)/ - 128 - + 127の符号付き範囲の範囲が得られます。

数値データを格納するのにcharsを使用しないでください。それはテキストタイプです。

また、ENUMフィールドを使用すると、平易な数字の代わりに「わかりやすい」名前を使用できます。

+0

返信のためのThans。 Enumを避けるように言われました。 – Lalajee

+0

@MarcB: 'TINYINT'や' CHAR(1) 'を使うと何か違いはありますか? –

+0

tinyint 1は単なる数値なので、常にバイトです。utf-8/16文字を格納している場合、char(1)は実際にはもっと多くなる可能性があります。あなたは数字を格納しているので、intフィールドを使ってください。 –

1

私は、データベーステーブル内にコードを持つことの大きなファンではありません。新しいステータスが追加されたらどうなりますか?

statusというルックアップ(子)テーブルを作成できます。可能なすべての値を挿入して、親テーブルとの不一致の関係を設定します。

アルファベット以外の特殊な順序がある場合、その状態をド​​ロップダウンコントロールで並べ替える必要がある場合は、並べ替えることができる列を追加します。

+0

返信いただきありがとうございます。私は各テーブルに異なるステータスを持っているので、これをするのは難しいです。例えば私は0 = No 1 = Yesをアクティブにするかもしれません。 – Lalajee

+0

私は同じステータスを持つことになります。私は別の言語でステータスを書いていきます。 – Lalajee

+0

@Lalajee私が従うかどうかわかりません - あなたは各行または各テーブルで異なるステータスを持つことを意味しますか?元の質問が1つのテーブルの一部として尋ねられました。 –