MongoDB structure: collection unique vs plusieurs petites collections

J'ai une base de données générale de la structure de la question. Dans mon scénario, il m'arrive d'être en utilisant mongodb.

Je suis en création d'une application où un utilisateur peut télécharger une liste de chansons (titre, artiste, etc.) mais je ne suis pas sûr si je devrais en avoir un songList collection pour tous les utilisateurs ou d'un autre songList.l'utilisateur# collection pour chaque utilisateur individuel. Les utilisateurs ne peuvent jamais requête morceaux associés à eux, de sorte que l'utilisateur Une volonté de ne JAMAIS savoir à propos de l'utilisateur B chansons.

Exemples De Code:

Plusieurs collections par l'utilisateur

db.songList.userA.find()
{"title": "Some song of user A", "artist": "Some artist of user A"}

db.songList.userB.find()
{"title": "Some song of user B", "artist": "Some artist of user B"}
  • Pros
    • Plus petite taille de la collection pour la requête
  • Cons
    • Maintenabilité
      • De 1 000 utilisateurs de moyens de 1000 collections

vs collection unique avec un propriétaire de champ 'utilisateur'

db.songList.find({"user":"A"})
{"title": "Some song of user A", "artist": "Some artist of user A", "user": "A"}
  • Pros
    • Flexibilité pour interroger l'ensemble des utilisateurs en cas de besoin jamais posés
  • Cons
    • Performance

Je suis en train de construire un pro/con liste, mais encore sur la clôture. Étant donné que chaque utilisateur chansons vont être isolés les uns des autres qui approche le mieux? Ma préoccupation principale est la maintenance et les performances des requêtes.

Merci d'avance.

  • Au lieu de se soucier de ce genre de choses, de construire quelque chose. Vous trouverez probablement ce qui fonctionnent le mieux, en le construisant, au lieu de se soucier des détails.
  • D'accord avec @SomeKittens. Cela dit, je le ferais par l'utilisateur car il est plus facile de faire une erreur et de montrer Une des chansons de B. de toute façon, j'avais à vous soucier de l'optimisation des si/quand j'avais assez d'utilisateurs.
  • De vue de la sécurité, d'avoir une collection par utilisateur et rend possible l'utilisation de Mongodb niveau de la collection de mécanismes de contrôle d'accès. De cette façon, il peut être assuré au niveau base de données qu'un utilisateur a jamais accède aux données d'une autre.
  • Je suis curieux de savoir quelle conception vous êtes allé avec je suis également confronté à un dilemme similaire en ce moment.
  • Collection unique
InformationsquelleAutor Steven | 2012-12-10