我只是为一个需要本地化支持的新项目建模PostgreSQL数据库。我想知道 hstore 是否可能是本地化某些数据字段的好方法。
例如:让我们为包含post_title
和post_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 | ... | ...
有没有人有这方面的经验?它似乎非常灵活且易于使用,但也许我在这里缺少一些重大缺点?
答案 0 :(得分:1)
我也在项目中使用这种方法,我相信这是一个很好的决定,因为我可以轻松地为我的项目添加新语言,而无需编写代码或更新数据库模式
此外,我可以轻松地将回退添加到这样的查询中:
select coalesce(nullif(post_title -> :lang, ''), post_title -> 'en') from posts
此外,还有很多powerful sql functions供您使用。