2008-10-14 8 views
10

Je veux juste stocker l'année dans l'un de mes modèles. Pour le moment, je n'ai qu'un champ de base de données appelé year of type date, mais il semble vouloir prendre une date entière (aaaa-mm-jj) plutôt qu'une seule année.Comment enregistrer l'année dans l'application Rails

Quelle est la meilleure façon de stocker cela? Dans un champ de date, mais en utilisant un moyen de l'obtenir pour stocker le bit de date (dans quel cas, comment?), Ou dans un champ int, ou un champ de chaîne ou quoi? À certains égards, utiliser un champ int se sent mal, mais ce pourrait être le plus facile.

Répondre

7

Cela dépend de la plage de dates possible. Si vos dates vont de la Colombie-Britannique à l'avenir lointain (négatif à plus de 4 chiffres), il serait plus facile de stocker un nombre entier (juste pour des raisons de tri). Ceci est également vrai si vous voulez faire des calculs ou comparer des dates.

Sinon j'irais probablement avec une chaîne. En utilisant un champ de date, utilisez le 1er janvier et extrayez la partie de l'année lors de l'affichage.

4

Je vous déconseille d'utiliser une date choisie arbitrairement dans un champ de date sur la base de la maintenabilité. Vous saurez que vous l'avez choisi arbitrairement, mais que les mainteneurs ultérieurs de votre application le feront? Je voudrais aller avec un int parce que de cette façon, vous ne stockez rien d'autre que ce que vous voulez stocker et il ne peut y avoir beaucoup de confusion sur la signification de celui-ci.