Stocker JSON dans la base de données MySQL? [dupliquer]
Cette question a déjà une réponse ici:
- Stockage de Données dans MySQL comme JSON 16 réponses
est-il acceptable de stocker des données JSON dans une rangée de tables MySQL? J'ai besoin de stocker des tableaux dans une base de données mysql. Le problème est, je ne sais pas combien de colonnes, j'ai besoin de chaque utilisateur. Donc j'ai pensé à stocker JSON dans une rangée nommée array
par exemple. Est-ce la meilleure façon de faire?
Edit:
Aussi, je suis en utilisant text
comme type de colonne de tableau.
4 réponses
Oui, c'est une très bonne idée d'utiliser mysql comme une valeur-clé magasin, en fait, facebook n'a, pour certaines utilisations.
CREATE TABLE `json` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`data` blob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
la structure de table ci-dessus vous mènera loin. Il est très facile de se détacher ou de se regrouper.
Edit: le but ici est D'utiliser PHP, Ruby etc pour gérer le json/data. Vous n' SELECT ...
, effectuez vos modifications, puis INSERT ... ON DUPLICATE KEY UPDATE ...
.
stocker plus d'une donnée dans un champ de base de données relationnelle est généralement erroné. Il est possible de penser à des cas où il serait acceptable, mais pas pour stocker un utilisateur entier.
si une structure de base de données relationnelle n'est pas suffisante, vous pouvez regarder une base de données NoSQL au lieu de MySQL.
Ce n'est pas un problème. mySQL peut déjà gérer la plupart des parenthèses et des caractères funky dans leur champ de texte.
je pense qu'il ne l'est pas. Qu'en est quatre mois plus tard, vous décidez d'ajouter un nouvel attribut à votre entité ou de supprimer certains attributs de votre entité? Comment allez-vous analyser votre ancien contenu json? Si vous ne savez pas combien de colonnes vous aurez besoin dans votre table, vous devriez penser d'une manière différente et peut-être créer une structure dynamique comme l'utilisation de user_column table