2010-09-25 18 views
1

Mon application a besoin de colonnes configurables et les titres de ces colonnes sont configurés dans le début, si la base de données de relation que j'aurait créé des colonnes génériques dans le tableau comme CODEA, CodeB etc pour ce besoin parce qu'il Cela aide aussi à afficher les valeurs (si ces colonnes stocke le code et la valeur) mais maintenant j'utilise la base de données Non Relational Datastore (et je suis nouveau), devrais-je suivre la même ancienne approche ou je devrais utiliser le type de structure de collection (paire de valeurs clés).non Relational Database, valeur clé ou une table plate

Il y aura beaucoup de filtres sur ces colonnes. S'il vous plaît suggérer

+0

Pourquoi choisissez-vous un NoSQL ici? Quand vous dites des colonnes configurables, qu'est-ce que cela signifie? S'il vous plaît, expliquez. –

+0

J'utilise Google Apps et Datastore est la seule base de données disponible. Les colonnes configurables signifient, disons que mon disque peut avoir dix dimensions, mais quand je crée une instance je définis quelle dimension signifie quoi ... comme dans le système de compte, certains voudront configurer le produit comme une dimension et d'autres clients aimeront Project au lieu du produit. –

Répondre

0

Ce que vous venez de décrire est l'un des scénarios classiques pour une base de données clé-valeur. La limite ici est que vous n'aurez pas beaucoup d'outils basés sur les ensembles auxquels vous êtes habitué.

La plupart des bases de données K-V sont vraiment bons au chargement d'un « dossier » ou petit ensemble de celui-ci. Cependant, ils n'ont pas tendance à charger tout ce qui peut nécessiter une jointure. Étant donné que vous utilisez AppEngine, vous appréciez probablement cette limitation. Mais ça vaut la peine d'énoncer.

Comme une note importante, pas toutes les bases de données K-V vous permettra de « sélectionner par une colonne ». De nombreux magasins K-V permettent seulement la sélection par une clé primaire. Si vous jetez un oeil à MongoDB, vous constaterez que vous pouvez interroger n'importe quelle colonne qui sonne comme une fonctionnalité nécessaire. NoSQL ne dispose pas de la capacité d'interrogation d'un SQL.

0

Je suggère d'utiliser des paires clé/valeur où les clés sera votre nom de colonne et la valeur seront leurs données.