J'utilise PostgreSQL pour mon application,
La tâche sera comme ça
Il y a des utilisateurs qui utilisent mon application, et je dois maintenir une notification pour chacun d'eux en fonction de leur activité, donc je reçois beaucoup de notifications pour chaque utilisateur.
donc en général, nous mettons simplement toutes les notifications dans une table séparée et nous mappons avec l'ID utilisateur, donc nous pouvons simplement les récupérer, mais maintenant je pense utiliser soit le type de données json/array, donc je peux simplement mettre l'ensemble de notification en tant que array/json dans la cellule de chaque ligne utilisateur.
Lequel est le meilleur, en stockant json ou un tableau? (Im en utilisant PHP côté serveur)
et si nous en choisissons un parmi les deux, disons que nous avons environ 10 notifications, et j'ai eu la 11e, comment ajouter le nouvel élément dans l'objet array/json en une seule exécution (peut être une instruction UPDATE)? Je ne veux pas aller de manière basique comme sélectionner la ligne, obtenir le tableau existant/json ajouter le nouvel élément à la fin (processus avec PHP) et le METTRE À JOUR en arrière - ici, il faut deux exécutions où un autre changement peut se produire et qui amène des pertes de données
existe-t-il donc un moyen de faire une requête UPDATE qui ajoute simplement un nouvel élément ou modifie l'élément/nœud existant dans les types obejct array/json dans PostgreSQL?
Pour ajouter un élément à un tableau dans PostgreSQL, vous pouvez utiliser || opérateur ou fonction array_append.
Avec || opérateur
UPDATE table SET array_field = array_field || 'new item' WHERE ...
Avec la fonction array_append
UPDATE table SET array_field = array_append(array_field,'new item') WHERE ...
Vous pouvez également visiter cette page pour les tableaux, http://www.postgresql.org/docs/current/interactive/functions-array.html
Je ne sais pas comment le faire avec le type de données json.