JavaEE プロジェクトを作成しましたが、ユーザーの性別を MySQL に保存する必要があります。そして、新しいユーザー アカウントを追加するときにこのプロパティを表示したいと考えています。例えば
<select name="gender">
<option value="0">Male</option>
<option value="1">Female</option>
</select>
これで、このプロパティを MySQL に保存する 2 つの方法が見つかりました。
整数/文字を使用して性別列を保存します:
gender tinyint(1) not null;
この場合、これらを Java コードに記述する必要があります。
public class StaticData { public static final short MALE = 0; public static final short FEMALE = 1; }
もしそうなら、私のデータベースは Java コードに依存して値の範囲を制限し、0/1 が何を表すかを説明します (低レベルは高レベルに依存します)。それは良い考えではないと思います。
列挙型を使用して性別列を保存します。
gender enum("MALE", "FEMALE") not null
この場合、私の Java コードは列挙型の値に依存します。これらの値を取得するには、次の 2 つの方法があります。
1) public enum Gender { MALE, FEMALE }、方法1とほぼ同じ問題です。
2) 「SHOW COLUMNS FROM user LIKE \"gender\"」などの値を MySQL から取得し、正規表現を使用して文字列を分割します。しかし、これは冗長な方法です。JSPをロードするたびにdbからクエリを実行する必要があります。高くつくと思います。
これに共通のイディオムはありますか?そうでない場合、プロジェクトに適したソリューションを選択する際に考慮すべき要素は何ですか?