質問: メンバーのテーブルのデータ型ですか? mysqlデータベースのメンバテーブルとスコアテーブルに使用するのに最適なデータ型は何ですか? 私はJavaでホストされているmysqlデータベースに接続するゲームを作成しています。私は各フィールドにどのデータ型を使用するのか不明です。 私が持っているフィールドは次のとおりです。 `TABLE tMembers` ``` ID INT(11) firstName VARCHAR(255) lastName VARCHAR(255) email VARCHAR(255) username VARCHAR(255) password VARCHAR(255) ``` `TABLE tScores` ``` ID INT(11) SCORE INT(11) DATE DATETIME ``` 私はSOのことをいくつか聞いたことがありますが、電子メールはこれより長くなることができないので、 `VARCHAR(80)`を使用する効率についてグーグル・グーグルで調べます。 名前には、 `text` よりも `varchar` が優れています(名前に数字や記号を含めることはできません。 また、 `ID` については、 `INT` または `INTEGER` を使用する必要がありますか? どんな援助も感謝以上です。
回答: > 私はSOのことをいくつか聞いたことがあります。 > 電子メールとしてVARCHAR(80)を使用する効率は電子メールとしては不可能です > それよりも長い、これは本当ですか? > > はい、列をvarchar(x)として定義する場合、その列に保存する値の長さはxより小さくする必要があります。 > 名前の場合、varcharはテキストよりも優れています(名前には > 数字や記号、なぜテキストを使うのはなぜですか?) > > varcharには、テキストよりも少ない文字(最大長)が含まれています。使用するmysqlのバージョンによって異なります。例えば5.03+ varcharには65535文字を使用できます。あなたの要件のためには、 "名前"のためのvarchar型は大丈夫でしょう。 > IDの場合は、INTまたはINTEGERを使用する必要がありますか? > > 私の理解では、mysqlのINTとINTEGERは同じです。チェック http://dev.mysql.com/doc/refman/5.0 /en/numeric-types.html そこにあなたが見ることができます: > MySQLは、すべての標準SQL数値データ型をサポートしています。これらのタイプ > 正確な数値データ型(INTEGER、SMALLINT、DECIMAL、および > NUMERIC)、および近似数値データ型(FLOAT、REAL、 > DOUBLE PRECISION)を選択します。 **キーワードINTはINTEGERの同義語です**。 > キーワードDECとFIXEDはDECIMALの同義語です。 > >