2011-04-11 4 views
2

Est-il possible de créer des espaces de noms imbriqués dans une application google app engine? Dire que je modélise une application multi-locataire similaire à google docs. J'ai évidemment besoin d'un espace de nom pour chaque organisation afin d'éviter les fuites de données d'une organisation à une autre. Cependant, je veux probablement un espace de nommage par utilisateur aussi de sorte que quand je cherche un document, je n'ai pas à chercher dans tous les documents de tous les utilisateurs dans cette organisation et encore pour éviter des fuites de données.Espaces de noms imbriqués dans google app engine

Quelle est la meilleure façon de modéliser cela?

+1

Faire une requête sur une grande banque de données n'est pas plus lent que de faire une requête sur un petit, dans App Engine. Partitionner chaque utilisateur dans son propre espace de nom ne vous fera pas gagner du temps à récupérer ses données. –

Répondre

2

Avec namespaces seulement des cordes étant (limité à [0‑9A‑Za‑z._‑]{0,100}) vous pouvez simplement utiliser "_" ou quelque part comme séparateur pour vos sous namespaces, de sorte que vous auriez namespaces comme « % organisation_% utilisateur »

Mais votre l'argument

Je n'ai donc pas chercher dans tous les documents

ne semble pas assez fort re ason de descendre cette route. Votre code deviendra plus complexe (et par conséquent plus probablement pour fuir des données) si vous devez constamment permuter entre les espaces de noms pour obtenir des données qui sont l'organisation large par rapport à l'utilisateur. Les performances ne seront pas améliorées plus que si vous filtriez votre liste de documents par un champ ID utilisateur.