Cod*_*ows 12 html php mysql postgresql postgresql-9.2
我使用PostgreSQL作为我的应用程序,
任务将是这样的
有些用户使用我的应用程序,我需要根据他们的活动维护每个用户的通知,因此我会收到大量的每个用户的通知.
所以一般来说我们只是将所有通知放在一个单独的表中,我们用用户ID映射,所以我们可以只获取它们,但现在我想使用json/array数据类型,所以我可以把整个通知设置为array/json进入每个用户行的单元格.
哪一个更好,存储json或数组?(我在服务器端使用PHP)
如果我们选择两者中的任何一个,假设我们有10个通知,并且我得到了第11个,我们如何在单个执行中将新项目附加到array/json对象中(可能是UPDATE语句)?我不想像基本方式一样选择行,获取现有的数组/ json最后添加新项目(使用PHP处理)并更新它 - 这里需要两次执行,其中可能会发生另一次更改并带来数据
那么有没有办法做UPDATE查询只是添加一个新元素或改变PostgreSQL中array/json obejct类型中的现有元素/节点?
小智 31
要将项目附加到PostgreSQL中的数组,您可以使用|| operator或array_append函数.
随着|| 操作者
UPDATE table SET array_field = array_field || 'new item' WHERE ...
Run Code Online (Sandbox Code Playgroud)
使用array_append函数
UPDATE table SET array_field = array_append(array_field,'new item') WHERE ...
Run Code Online (Sandbox Code Playgroud)
您也可以访问此页面的数组,http://www.postgresql.org/docs/current/interactive/functions-array.html
我不知道如何使用json数据类型.