使用PostgreSQL hstore for i18n

时间:2015-11-03 18:20:36

标签: postgresql internationalization hstore

我只是为一个需要本地化支持的新项目建模PostgreSQL数据库。我想知道 hstore 是否可能是本地化某些数据字段的好方法。

例如:让我们为包含post_titlepost_content字段的博客文章采用简化表格。使用键值类型 hstore ,可以为这些字段添加多个翻译,并使用语言代码作为关键字标识:

id | post_title (hstore)   | post_content (hstore)
---|-----------------------|------------------------------
 1 | "en" => "Hello World",| "en" => "Content in english",
   | "de" => "Hallo Welt"  | "de" => "Inhalt auf deutsch"
---|-----------------------|------------------------------
 2 | ...                   | ...

有没有人有这方面的经验?它似乎非常灵活且易于使用,但也许我在这里缺少一些重大缺点?

1 个答案:

答案 0 :(得分:1)

我也在项目中使用这种方法,我相信这是一个很好的决定,因为我可以轻松地为我的项目添加新语言,而无需编写代码或更新数据库模式

此外,我可以轻松地将回退添加到这样的查询中:

select coalesce(nullif(post_title -> :lang, ''), post_title -> 'en') from posts

此外,还有很多powerful sql functions供您使用。