我有一个实体的String属性,其他实体通常会重复使用该属性-在传统数据库中,该属性会映射到其自己的表中。

例如:我可以有一个服装实体,每件服装都有自己的对象或行。每个项目都会有一个品牌,但是许多其他服装项目可能会重复使用此品牌(字符串)。 -本质上,它应该是manyToOne映射,尽管品牌本身不是一个实体,而只是一个String。

在休眠状态下我该怎么办?还是我应该为每个品牌创建一个实体并使用ManyToOne?

任何帮助将不胜感激!

最佳答案

我认为,就database normalization(最具体来说是3NF)而言,如果您希望某个列具有重复的值,则应将这些值导出到它们自己的表中并具有一个外键列。这样,如果其中一个值发生更改,则可以立即更改所有这些值。

这样一来,您还可以在Hibernate中使用ManyToOne。

但是,如果不可能,我建议使用Enum

09-10 08:06
查看更多