2012-01-29 3 views
0

Dans mon application, chaque utilisateur a une table d'enregistrements dit:
id, friend_name, messageQuelle est la meilleure façon de conserver un enregistrement distinct pour chaque utilisateur d'Android?

Mon but est de stocker ces données dans le téléphone Android, de sorte que chaque fois qu'un utilisateur se connecter, il/elle peut remplir cette liste rapidement . Du côté serveur, j'avais déjà un enregistrement de friend relationship ... etc. Maintenant je veux juste garder une petite base de données dans le côté d'Android pour chaque utilisateur parce que le chargement du serveur prend des temps, plus je me rends compte que ces données sont distinctes parmi les utilisateurs. Faisons dit:
- L'utilisateur A a des messages: a, b, c
- L'utilisateur B a des messages: d, e, f
...

Je l'ai lu SharePreference, mais je suppose que c'est ici inapproprié depuis SP n'est bon que pour les valeurs key/pair. Ensuite, je regarde sur la base de données sqllite, c'est simple. Mais ce que je ne comprends pas, c'est comment pouvons-nous nous assurer qu'à chaque fois qu'un nouvel utilisateur se connecte, il aura sa propre base de données mais pas d'autres? Je peux garder une key/pair valeur flag pour chaque utilisateur dans SharedPreference pour vérifier si la base de données existait déjà, mais où puis-je stocker ces bases de données? Pour n utilisateurs, je devrais stocker n bases de données, cela semble peu pratique.

Alors, quelle est la meilleure façon de stocker mes données dans ce cas?

+0

Peut-être que vous pourriez essayer enregistrer enregistrer pas pour chaque utilisateur, mais pour chaque message, parce que je comprends que les messages peuvent être connectés avec plus d'un utilisateur. Penses-y. – sebap123

Répondre

1

Vous ne créer une nouvelle base de données pour chaque utilisateur. Ce que vous devez vous concentrer sur une bonne conception de base de données. Dans ce cas particulier, vous créez une table pour les messages, une table pour les utilisateurs et une table contenant les liens entre les utilisateurs et les messages utilisant leurs identifiants. Lorsqu'un utilisateur se connecte à votre application, vous trouverez les messages liés à cet utilisateur. Une bonne conception de la base de données garantit également qu'il n'y a pas de données redondantes (= données en double, par exemple en stockant deux fois le même message). Regardez dans la normalisation de la base de données si vous voulez en savoir plus à ce sujet.

+0

Mais si je dois créer une base de données pour tous les utilisateurs, c'est comme utiliser la base de données du serveur. Dans ma base de données serveur, j'ai une table 'user', une table' friend' qui stocke une paire d'identifiants, et une table 'message'. Apparemment, je peux faire une requête JOIN, mais je veux toujours garder un enregistrement de données distinct pour chaque utilisateur. Je me demande s'il existe une autre technique pour ce cas particulier? En passant, merci pour la suggestion. – Chan

Questions connexes