关于性能的问题最终将导致我如何设置我的表结构。
我有表 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 更快。