J'ai une application qui permet aux utilisateurs de créer des choses dans JS. Je veux que l'utilisateur puisse sauvegarder l'état actuel de son travail pour le réutiliser ou le partager, mais ce qu'il a est une collection d'objets JS stockés dans un tableau JS, avec des propriétés très différentes (couleur, étiquette, x / y position, taille, etc.).

SQL semble terrible pour cette tâche particulière, me forçant à maintenir des tables pour chaque objet différent, et hélas, je connais très peu la base de données NoSQL. Quels outils utiliseriez-vous pour effectuer cela? MongoDB semble prometteur mais avant d'apprendre un tout nouveau paradigme de base de données, je veux m'assurer que je vais dans la bonne direction.

3
Cystack 1 nov. 2011 à 16:24

3 réponses

Meilleure réponse

Objet à chaîne:

Vous pouvez stocker vos objets dans la base de données sous forme de chaîne JSON. Voici un exemple simple:

var foo = new Object();
foo.Name = "James";
foo.Gender = "Male";

//Result: {"Name":"James","Gender":"Male"}
var stringRepresentation = window.JSON.stringify(foo);

Voici un violon fonctionnel.

Chaîne à opposer:

Pour reconvertir votre chaîne en objet, appelez simplement window.JSON.parse():

var myObject = window.JSON.parse(stringRepresentation);

Voici un violon fonctionnel.

4
James Hill 1 nov. 2011 à 12:34

Qu'y a-t-il sur le serveur?

La plupart des langages ont des implémentations JSON matures qui convertissent les objets JavaScript en types natifs, que vous pouvez ensuite facilement stocker dans une base de données SQL.

0
Rich 1 nov. 2011 à 12:29

Si vous n'avez aucun intérêt à interroger les objets pour leurs différentes propriétés mais que vous les conservez uniquement pour enregistrer l'état, vous pouvez sérialiser l'ensemble du tableau en JSON et le stocker dans la base de données de votre choix sous la forme d'une chaîne.

0
Variant 1 nov. 2011 à 12:27