2016-06-24 9 views
2

血液型を保存するのに好ましい(最小のデータ量が必要な)データ型はどれですか?言い換えれば、 '+'または ' - '記号で1〜2文字を格納します。血液型を格納するためのMySQLデータ型?

ありがとうございました

+0

あなたが満足しているものは何でも – Drew

+1

私の最初の考えは、可能な値を持つENUMです。 (A +、A-、B +、B-、AB +など)...いくつかの[警告](http://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is -evil /)を使用してENUMを使用します。また、それはデータのような小さなビットなので、VARCHAR(3)もうまく動作するはずです。 –

+0

このユースケースでは、ENUM_ _に投票しました。 –

答えて

2

あなたのニーズや要望に大きく依存しています。個人的には、おそらく各タイプに数値を割り当ててtinyintを使用しています。ただし、行をより直接的に読み込みたい場合は、CHAR(3)またはVARCHAR(3)が適切かもしれません。実際、これは、私がENUMを使用することを提案する数少ない稀なケースの1つです(可能な値を追加または削除する必要はほとんどありません)。

+0

ENUMを使用することは考えていませんでしたが、このコラムと他のいくつかのオプションには特別なオプションがあることが良い選択です。 –

+2

ほとんどの場合、enumを使用することには注意が必要です。有効な値のリストが後で拡張する必要がないという私の経験ではまれですが、何年もの間にalter tableを必要とするのは苦しいことがあります。さまざまなdbアクセスライブラリのenum型に対するサポートとそのサポートは、少し欠けている可能性があります。 – Uueerdo

+2

@Uueerdo - 注意が古くなっています。いくつかのバージョンでは、ENUMの変更は非常に効率的になりました。あなたは_end_の新しい値だけを追加しています。 –

関連する問題