PostgreSQL能否支持hstore数组?

5

我完全是PostgreSQL的新手。我对Postgres提供的hstore数据类型深感惊奇。好吧,我正在使用Rails 3框架并开发一个简单的应用程序,该应用程序使用PostgreSQL。我想在字段中存储哈希数组。 例如:

authors: [
           {
             name: "abc",
             email: "abc@example.com"
           },
           {
             name: "xyz",
             email: "xyz@example.com"
           }
         ]

这在使用Rails 3时是否可以在PostgreSQL中实现?如果可以,能否有人提供相关的见解和方法呢?
谢谢。

1
当然,在PG端是可能的:http://sqlfiddle.com/#!1/16e4c/3 - Jakub Kania
你知道如何在Rails中实现这个吗?我对Rails完全是新手。谢谢。 - swaroopsm
2个回答

7
在Rails 4中,可以使用类似于以下表创建中的列规范来创建一个hstore数组列:
t.hstore :properties, :array => true

然而,在Rails 4.0中存在一个编码错误,导致它们无法使用;基本上,你可以从它们中读取,并且它们会正确呈现为哈希数组,但不能写入。
我已经在https://github.com/rails/rails/issues/11135上开了一个问题(附有修复补丁),希望很快能被合并。

谢谢!期待Rails团队的整合。 - swaroopsm
感谢您的工作,@inopinatus!您有没有想法如何将hstore数组作为字符串传递,以便在您的补丁成为Rails的一部分之前正确地进入数据库? - user636044
您的答案似乎与此处接受的答案相矛盾:https://dev59.com/82Eh5IYBdhLWcg3whT3T 您确定可以这样做吗? - Noz
1
@noz,鉴于我的补丁现在已经在生产的Rails中了,我非常确定! - inopinatus

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接