用于存储构建版本的SQL数据类型
问题描述:
我应该使用哪种数据类型来存储SQL列产品版本例如:用于存储构建版本的SQL数据类型
Version
0.1
0.1.1
0.2
1.1
1.1.647
2.0
.....
在查询我应该能够根据版本号对它们进行排序,我想要一个最佳查询来找到最高数字。
由于
答
我会考虑存储在一个单独的TINYINT/SMALLINT场数的每个部分。
答
或许有三个或四个数字字段版本表:
Major, Minor, Revision, Build
答
在独立的数字存储领域是一个好主意。当单个字段中存储为字符串时,将在其中一个部分达到1000时断开排序。例如,1.2.900会出现在之前(或显示为比1.2.1000更早),当它出现在后面时。
答
一个很好的解决办法是使用一个整数建立的值来存储像这样:
MAJOR * 10000 + MINOR * 100 + Revision
假设每一个范围可以从0..99。如果你想要去0..999使用
MAJOR * 1000000 + MINOR * 1000 + Revision
这将正确排序,很容易查询,紧凑(1 INT列),很容易分解,甚至可以直观地分解。