Mysql
 sql >> Base de données >  >> RDS >> Mysql

Meilleure façon d'insérer des données JSON dans MYSQL

Certains commentaires ont suggéré de le laisser au format JSON et de le stocker dans une colonne de texte.

Je suggérerais que si vous avez le contrôle sur votre schéma, vous devriez le stocker dans deux NUMERIC champs - un pour la latitude et un pour la longitude. Fondamentalement, ce sont les données dont vous disposez. Le fait que vous l'ayez reçu en utilisant JSON comme format de conteneur n'est pas pertinent pour les données elles-mêmes.

Si vous le stockez sous la forme d'une latitude et d'une longitude, il est plus simple d'interroger dessus, et vous pouvez toujours recréer le JSON plus tard si vous le souhaitez... mais si vous finissez par vouloir le récupérer pas en tant que JSON, vous serez dans une bien meilleure position pour le faire. Cela signifie également que vous n'êtes pas lié à JSON contre les modifications futures.

Personnellement, je pense que c'est toujours une bonne idée de séparer mentalement la nature intrinsèque des données de la façon dont vous les recevez. Stockez les données dans n'importe quel format idiomatique pour ce stockage - donc si vous stockez un nombre, utilisez l'un des types de données numériques. Si vous stockez une date et une heure, utilisez datetime , etc. De cette façon, vous ne vous retrouvez pas avec une couche supplémentaire entre vous et les données elles-mêmes chaque fois que vous souhaitez y accéder.

Cette approche signifie également que vous êtes beaucoup plus susceptible de détecter les mauvaises données dès le début - si vous stockez simplement le JSON directement sans l'analyser au préalable, vous pourriez plus tard constater que la latitude ou la longitude n'est pas un nombre valide. Heck, le fait que vos exemples de données aient parfois lon et a parfois lng suggère que vous devriez quand même faire un peu de nettoyage des données.