2009-12-09 3 views
0

J'ai une application avec un modèle de compte. Chaque compte appartient à un sport que j'aurais habituellement comme modèle Sport et dans la DB. Mais comme ce n'est pas vraiment quelque chose qui va changer et qui n'est pas administré par les utilisateurs finaux, j'ai pensé qu'il serait mieux de le mettre comme une colonne entière dans le modèle Account et de le mapper avec un hash en utilisant une variable de classe. Cependant, j'ai besoin que chaque sport ait de nombreuses positions de joueurs (spécifiques à chaque sport). Donc, je pensais que je pouvais faire quelque chose comme:Mappage de données non DB sur des modèles de rails

@@player_positions = {:rugby => [position_1, ..., ...]} 

Est-ce une bonne pratique pour les données statiques comme celui-ci ou devrais-je coller à le mettre dans le DB comme il est relationnel?

J'ai aussi pensé que je pourrais peut-être utiliser un fichier yaml mais je ne sais pas comment je pourrais le configurer.

Répondre

0

Je collerais dans la base de données parce que vous reliez plus d'une chose au sport (postes en plus de compte). Cela rend la vie plus facile si vous voulez utiliser belongs_to et cela vous permettra d'utiliser facilement SQL pour les comptes et autres (par exemple, vous pouvez regrouper des comptes par sport et obtenir un compte de comptes par sport).

J'ai utilisé une liste énumérée de constantes dans certains cas, par opposition aux tables. Par exemple, j'avais une application simple avec un type d'utilisateur ADMIN, EDITOR et READER. Plutôt que de mettre cela dans une table de rôles dans la base de données, je viens de faire ces constantes sur la classe User et ajouté une colonne de chaîne à la table des utilisateurs pour le rôle.

+0

Oui, c'était mon intuition, car je pense qu'il peut y avoir plus de choses que je dois rapporter à un Accoutn et Sport – Cameron

Questions connexes