2010-10-16 10 views
2

J'ai un problème de meilleure pratique/efficacité/performance.Rails Utilisateurs has_one: profile vs show page

Si je veux avoir une page de profil pour chaque utilisateur de mon système et que j'ai déjà un modèle d'utilisateur. Est-il préférable d'avoir toutes les informations des utilisateurs dans le modèle de l'utilisateur et le tirer sur la page d'affichage des utilisateurs

afin utilisateurs/show va accéder au modèle de l'utilisateur et récupérer toutes les données pertinentes comme sur moi, intérêts, etc

OU

dois-je faire quelque chose comme créer un modèle de profil et faire has_one: profil, dans le modèle d'utilisateur et conserver les données de profil pertinentes là-dedans?

Ce n'est pas une question de savoir comment, mais plutôt ce que l'on appelle les «meilleures pratiques» et pourquoi utiliser une méthode plutôt qu'une autre? Merci!

Répondre

3

S'il s'agissait de mon application, je poserais la question suivante: «à quelle fréquence la table des utilisateurs va-t-elle être interrogée sans le profil». Si la réponse est souvent, alors assurez-vous, normaliser loin. Mais sachez que créer une autre table pour le profil ajoute le surcoût d'une jointure et d'une clé étrangère supplémentaire (peut-être même un index ...).

Je l'ai vu faire dans les deux sens, et pour moi, il est plus naturel de garder les informations de l'utilisateur avec l'utilisateur. Si l'information devient vraiment détaillée comme plusieurs adresses de contact, etc., vous pourriez penser à casser certaines choses à ce moment-là.

+0

merci Steve, je l'ai vu faire les deux sens aussi et je me suis toujours demandé. Votre réponse a beaucoup de sens. – jim

Questions connexes