2016-06-12 2 views
2

Je construis une application web qui utilise PHP et MySQL sur le backend. Je veux stocker des données utilisateur - essentiellement un ensemble d'objets au format JSON qui détaillent les informations «favorites» de l'utilisateur pour l'application. Je ne veux pas stocker ces données JSON dans un seul champ MySQL dans ma table de base de données utilisateur car cela ne semble pas efficace. Donc, je pense simplement à stocker les données JSON dans un fichier plat sur le serveur avec un identifiant unique que je peux utiliser pour savoir à quel utilisateur le fichier est associé. Mes questions sont: Serait-ce une solution évolutive pour plus de 10 000 utilisateurs?Stocker des données utilisateur dans des fichiers JSON sur le serveur

+0

https://dev.mysql.com/doc/refman/5.7/fr/json.html – rjdown

Répondre

2

Ceci est susceptible de vous causer beaucoup de maux de tête, à la fois en termes d'aspects techniques et en termes de sécurité. Et non, ce n'est pas très évolutif. Pensez aux problèmes que cela va causer: Que se passe-t-il lorsque vous devez ajouter un serveur? Comment allez-vous synchroniser les fichiers? Que faire si vous voulez faire quelque chose impliquant plusieurs utilisateurs, comme voir combien de personnes ont XYZ comme favori?

Une meilleure option est de faire une des opérations suivantes:

  • Normaliser votre base de données (faire partie peu importe) et mettre les favoris dans leur propre table ou
  • Enregistrer les favoris dans un Colonne JSON (probablement la mauvaise réponse, mais logique dans certains contextes)

Si vous êtes préoccupé par la vitesse, vous pouvez implémenter une mise en cache en utilisant Redis, memcached ou un autre système. Mais ne le font pas encore - c'est une optimisation prématurée. Faites-le quand vous en avez besoin.

+0

Points forts Ed. Votre commentaire sur la recherche de plusieurs utilisateurs est sur place. À l'origine, je pensais utiliser IndexedDB du côté client, mais cela rend l'analyse des utilisateurs multiples beaucoup plus difficile. Je pense que je vais regarder une solution MySQL, même si ce n'est pas idéal. –

+0

Ed J'ai également noté que MySQL 5.7 fournit un support natif pour les données JSON. Je suis sur une version plus ancienne de MySQL 5.6, donc je vais mettre à jour et tester la récupération/stockage JSON. –

+0

@Yves Bonne chance, et je suis content que je puisse vous aider! –