我有一个实体的String属性,其他实体通常会重复使用该属性-在传统数据库中,该属性会映射到其自己的表中。
例如:我可以有一个服装实体,每件服装都有自己的对象或行。每个项目都会有一个品牌,但是许多其他服装项目可能会重复使用此品牌(字符串)。 -本质上,它应该是manyToOne映射,尽管品牌本身不是一个实体,而只是一个String。
在休眠状态下我该怎么办?还是我应该为每个品牌创建一个实体并使用ManyToOne?
任何帮助将不胜感激!
最佳答案
我认为,就database normalization(最具体来说是3NF)而言,如果您希望某个列具有重复的值,则应将这些值导出到它们自己的表中并具有一个外键列。这样,如果其中一个值发生更改,则可以立即更改所有这些值。
这样一来,您还可以在Hibernate中使用ManyToOne。
但是,如果不可能,我建议使用Enum。