如何在PostgreSQL数据库中创建表来存储JSON对象数据?

7

我是PostgreSQL数据库(9.5.0)的新手,我需要将我的JSON数据存储在PostgreSQL数据库中,因此我需要为它创建一个表。当我点击前端的提交按钮时,如何创建一个表来存储我的JSON对象,以便它将被存储在创建的数据库表中。我的示例JSON对象如下(具有键/值对,包含文件),请帮助我。

{"key1":"value1","key2":"value2","key3":"value3","key4_file_name":"Test.txt"}

1
create table documents (id integer primary key, content jsonb) - user330315
@a_horse_with_no_name,感谢您的回复。这是指将所有JSON值存储在表格中(包括所有键/值和文件,如果有的话)吗?因为我是新手。谢谢。 - Nag
1个回答

9

PostgreSQL拥有jsonjsonb(b代表二进制)数据类型。您可以像任何其他数据类型一样在表定义中使用它们。如果您只打算存储json数据,则最好使用json数据类型。另一方面,如果您计划在PG服务器内部对json数据进行大量分析,则最好使用jsonb数据类型。


嗨 Patrick,谢谢你的回复,那么这样可以吗?创建表test(内容为json);?这样它将把我上面的所有JSON对象存储到这个表(test)中。 - Nag
是的,这就是所需的全部。然后,数据库中的每一行都可以保存一个json文档。您可能希望添加一些其他列来通过id或用户名标识json文档,但原则上这就是您所需要的全部。 - Patrick
你能详细说明为什么一个更适合于“分析”而不是“静态存储”吗? - FreyGeospatial
1
@FreyGeospatial Processing在PG中处理json数据意味着必须在对其进行任何操作之前解析文本格式的文档,这与不需要此类预处理的jsonb相比非常低效。如果仅将JSON文档存储在PG中而不进行处理,则仅在客户端应用程序需要以文本格式获取JSON文档时才使用json数据。 - Patrick

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