最終的にテーブル構造の設定方法につながるパフォーマンスに関する質問。
テーブルA、B、C、Dがあります。
テーブル B、C、および D は、序数の値を列挙値にマッピングするだけの列挙にマッピングされます。
Table B:
ID: 1 String: ENUM_STR_VALUE
ID: 2 String: ENUM_STR_VALUE
テーブル A には次のスキーマがあります
Name Null Type
------------------------------
ID Not Null Number(32)
Timestamp Not Null Date
Item_Type Not Null Number (32)
Item2_Type Not Null Number (32)
Item3_Type Not Null Number (32)
テーブル A...Item_Type では、Item2_Type および Item3_Type は、それぞれテーブル B、C、および D の序数値です。
私の問題は、ユーザーに物事を表示する方法に帰着します。
私の A.java には、次のコードがあります。
@Entity
@Table(name = "a")
public classs A{
private int item_type;
private int item2_type;
private int item3_type;
@Column(name="Item_type")
public nit getItem_type(){
return item_type;
}
この正規化を捨てて、item_types varchars を作成し、Hibernate の @Enumerated プロパティを活用する必要がありますか? または、値をユーザーにマップして表示する方法はありますか。その理由は、最終的にこれらの項目タイプを照会したいためであり、int による検索は varchar よりも高速である必要があります。