如何在postgres中保留枚举类型?

时间:2015-08-04 10:23:04

标签: java hibernate postgresql enums

我想在postgres中保留以下xml结构:

<product>
  <type>car</type>
  <text>long content</text>
</product>

type属性可能有大约10-20个变体。因此,在java中,它们将是enums

我可以按如下方式创建table product

type, text
------------------
car , long content

问题:在这里,我会一遍又一遍地重复type的文字。

要更改它,我可以使用id:

的引用
table product:
type_id, text
---------------------
1      , long content

table product_type:
id, type_name
-------------
1 , car

问题:您是否认为这是正确的方法(因为在每次获取产品时我都必须加入product_type表来获取type的文本?

我后来想再次以REST api的形式提供数据库的一些内容,并且我还希望写出<type>car</type>属性。

1 个答案:

答案 0 :(得分:1)

我认为更好的方法是只留下type_id,删除表product_type并在代码中创建从type_id到枚举值的映射。如果您想在db中使用一些有意义的名称,只需在type_name表中添加另一列product