郵便番号(米国内)をMySQLデータベースに保存したい。 節約スペースが優先されます。これは、VARCHARを使用する方が良いオプションです。最大長が6桁に制限されているか、INTを使用するか、MEDIUMIntを使用します。郵便番号は計算には使用されません。郵便番号は、挿入(1回)、更新(必要な場合)、および取得-1回(ただし、複数回の場合もあります)に使用されます。
ここで使用するのに適したオプションはどれですかVARCHARまたはINTまたはMEDIUM IN MYSQL?他に何か提案してください。
郵便番号を数値として保存することにはいくつかの問題があります。
12345-6789
_にすることができます。数値データ型にダッシュを格納することはできません。郵便番号をvarchar(5)
またはvarchar(10)
として保存します。
ちなみに、なぜvarchar(6)
を選択するのかわかりませんが、標準の郵便番号が5または10で拡張子が付いている場合に、通常とは異なる長さを選択する理由はありますか?
私は通常、5桁の郵便番号にMEDIUMINT(5) ZEROFILL
を使用します。これにより、先頭の_0
_が保持され、VARCHAR(5)
が6を使用する場合は3バイトのみが使用されます。これは、ダッシュと4つの追加番号を持つ拡張郵便番号が必要ないことを前提としています。テキストタイプを使用することにした場合は、データが常に5文字の長さである方がよいため、CHAR(5)
の代わりにVARCHAR(5)
を使用します。
郵便番号は常に5文字であるため、VARCHARではなくCHARデータ型が必要になります。
したがって、あなたの選択肢は
CHAR(5)
MEDIUMINT (5) UNSIGNED ZEROFILL
最初のものは、郵便番号ごとに5バイトかかります。
2つ目は、郵便番号ごとに3バイトしかかかりません。 ZEROFILLオプションは、先行ゼロのある郵便番号に必要です。
したがって、スペースを優先する場合は、MEDIUMINTを使用してください。
国によっては郵便番号が英数字として使用され、他の場所では整数として使用されるため、VARCHARデータ型を使用することをお勧めします。したがって、整数をグローバルに使用することはできません。また、郵便番号は001101
のようにゼロで始まる場合があるため、この場合、データ型整数を取得すると、先行ゼロが失われるため、実際の郵便番号を渡すことはできません。