Quel type de données dois-je utiliser pour une colonne SQL pour stocker la version du produit, par exemple.
Version 0.1 0.1.1 0.2 1.1 1.1.647 2.0 .....
5 Réponses :
Je envisagerais de stocker chaque partie du nombre dans un champ Tinyint / Smallint séparé. P>
peut-être avoir trois ou quatre champs numériques à la table de la version:
Major, Minor, Revision, Build
stocker dans des champs numériques séparés est une bonne idée. Le stockage sous forme d'une chaîne dans un seul champ va rompre le tri lorsque l'une des pièces atteindra 1000. Par exemple, 1.2.999 apparaîtra auparavant (ou montré comme plus récent que) 1.2.1000 lorsqu'il devrait apparaître après. P>
Une bonne solution serait d'utiliser un entier de construire la valeur à stocker comme: supposant que chacun peut aller de 0..99. Si vous voulez aller 0..999, utilisez P> MAJOR * 1000000 + MINOR * 1000 + Revision
J'ai utilisé cette méthode pour DynamoDB. Cela a fonctionné.
Vous voudrez peut-être stocker les versions dans deux colonnes distinctes. Un comme Comment stocker une version en tant que supposant que chaque partie d'une version peut comporter un maximum de 4 chiffres, une version peut être stockée comme suit: p> xxx pré> où le format Cette valeur peut être stockée dans un par exemple, version Si chacun Une partie d'une version peut être maximale de 5 chiffres ( par exemple , version L'avantage de PS: Comment stocker une version comme astuces d'en haut peut également appliquer pour stocker la version dans une colonne de chaîne. p> varchar code> qui stockerait la valeur de la version Verbatim (pour afficher dans UI) et un comme décimal code> pour le tri. décimal code> dans mysql qui est tritable strud> p> () code> fonction est défini comme suit: p> décimal (12,8) code> colonne . p> 2021.7.115 code> serait stocké comme 2021.00070115 code>. P> sprintf ("% 0.5d", i) [0,5] code>), le format ci-dessus nécessiterait un décimal (15,10) code> colonne . p> 2021.7.115 code> serait stockée comme 2021.0000700115 code>. p> décimal code> et non integer code> Type de données? strong> p> décimal code> est que plus de chiffres peuvent être ajoutés à droite à l'avenir sans affecter le tri, ce qui n'est pas possible. Pour entier code> colonnes. Par exemple, {major}. {Mineur} {révision} code> peut être modifié en {major}. {Mineur} {révision} {MORESTFF} code> sans affecter le tri (qui veut t être possible pour entières code> de colonnes sans mettre à jour les valeurs existantes). p> varchar code> dans MySQL qui est tridicable strong> p> "#{format(major)}#{format(minor)}#{format(revision)}"