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