2011-01-09 13 views
0

テーブルのフィールドを作成したとき、フィールド(int、char、varchar ....)およびサイズiがどのタイプで使用されるべきか分かりません。例:電子メール、時刻、住所、電話....など。mysql ---どのタイプを使うべきですか?

+3

少なくとも、推測してください...? – BoltClock

+0

明らかに、**最も適切な**タイプを使用する必要があります。 – zerkms

答えて

2

ここには一般的な経験則があります。記載された順序でそれらを適用します。それは、時間や日付だ場合は、

  1. をあなたがそれに数学をやろうとしている場合はTIMEまたはDATE型
  2. を使用し、そのようINTEGER、FLOATとして数値型を使用し、 REAL、またはDECIMALのいずれかです。電話番号や生徒IDなどの数値は数値型である必要はありませんが、必要に応じて数値型にすることもできます。数値の範囲を加算、減算、乗算、または比較する場合は、間違いなく数値型にします。あなたがそれに行くのでなければ、おそらく数値である必要はありません。経験則としては、数字「00」が状況に応じて数字「0」と同じであれば数値でなければなりません。それらが異なる番号(場合によっては部屋番号や学生IDなど)であれば、数字であってはなりません。 (以下の数値タイプを選択するための経験則を書きます)
  3. それ以外の場合は、文字列タイプを使用してください。具体的には、長さが正確にまたは2文字以内であれば、その長さのCHARを使用します。
  4. 長さがわからない場合は、VARCHARを使用して、合理的な最大長を選択してください。つまり、あなたが確信しているものは、それに馬鹿にならずに十分に長くなるでしょう。たとえば、15文字以上の姓の友人がいないため、姓のVARCHAR(15)は、Schwietzer-McCullough氏の挿入が必要になるまで見つけられます。しかし、VARCHAR(100000)はおそらく過剰です。姓の場合は、VARCHAR(50)のオーダーのものが適切ですが、VARCHAR(100)は妥当です。数値タイプ選択

:それは全体の数だと、常に整数になる場合

  1. は、INTEGERタイプを選びました。繰り返しますが、最大の価値に基づいてサイズを選択する必要があります。ここにはページがあります:http://dev.mysql.com/doc/refman/5.0/en/numeric-types.htmlには、MySQLのさまざまなサイズのINT型の最大値のチャートが含まれています。
  2. 金額、パーセント、気温、またはほとんどすべての通常の小数点値などの10進数の場合は、DECIMALを使用します。 (NUMERICはMySQLのDECIMALと同じ意味です)これに合わせて2つの数字(DECIMAL(6,2)など)を選択します。最初の数字は格納されるべき桁数の合計です。 2番目の数字は、小数点以下の桁数です。つまり、歯磨き粉の価格を約$ 1から$ 10の範囲で保存する必要がある場合は、DECIMAL(4,2)を実行して、0.00から99.99までの数値を保存できます。分数セントを含むことができ、非常に高い株価を保管しなければならない場合は、おそらくDECIMAL(10,3)が0.000〜9999999.999の範囲であることが望ましいでしょう。
  3. 科学的表記法で表現する必要があり、多くの計算を行い、効率的にする必要がある数値がある場合は、REALまたはDOUBLEを使用します。微妙な不正確さが導入されるため、これらを価格やパーセント、またはそのようなものを格納するために使用しないでください(2を参照)。しかし、あなたの答えが8x10^-5から2.58x10^34まで変わる可能性があるなら、ええ、そのようなものについては、DOUBLEを使用してください。コンピュータはバイナリで動作するため、これらは実際にはX * 10^Yの形式ではなくX * 2^Yの形式で格納されるため、10進表記と若干異なる場合があることに注意してください。これが私たちが通貨として使用しない理由です。
  4. 3のような数字がありますが、実際には記憶スペースが必要な場合は、FLOATを使用してください。実際には、実際にはFLOATは決して使用しないでしょう。彼らはダブルのようですが、半分の大きさです。
+1

多くのおかげで、あなたは私にたくさんのことを知らせました。 – runeveryday

+1

実際には、システム間で作業するときに時間と日付の種類が痛いことがありますので、必ずしも悪い考えではない時刻や日付を格納する手段を使用する人もいますが、TIME特定の理由がない場合を除き、DATE型を使用します。 –

+0

プライマリキーとしてIDを使用し、それをオートインクリメントするとき、どのタイプを使うべきですか?シリアルまたはint?部屋番号と生徒IDには、私はシャルルがvarchar(10)とvarchar(15).am iを使っています。 – runeveryday

2

数値に整数を使用しないでください。可変幅の文字行にはvarcharを使用しないでください。実際の入力よりも小さいサイズを使用すると、データを失うことでディスク容量を節約できます。

-1

まあ、varcharフィールドはtime以外のすべてのフィールドに使用できます。 timeフィールドの場合は、timeというデータ型を使用できます。これは、データの操作を簡単にするために役立ちます。

+0

このような質問にこれまで与えられた最悪のアドバイス。 – zerkms

+0

これはなぜ悪いアドバイスなのか分かりません。質問には、アドレス、電子メールのデータ型を指定する方法が尋ねられました。同じようにvarcharを使用することもできます。時間フィールドにも同様に適用されます。「数字などのために整数を使用しない」と比べてはるかに良い答えです。 – programmer

関連する問題