nin*_*nin 11 mysql sql database database-design
我应该使用什么数据类型来存储产品版本的SQL列,例如.
Version
0.1
0.1.1
0.2
1.1
1.1.647
2.0
.....
Run Code Online (Sandbox Code Playgroud)
在查询中我应该能够根据版本号对它们进行排序,我想要一个最佳查询来查找最高数字.
谢谢
存储在单独的数字字段中是一个好主意。当其中一个部分达到 1000 时,将其作为字符串存储在单个字段中会中断排序。例如,1.2.999 将出现在 1.2.1000 之前(或显示为更新于),而它应该出现在 1.2.1000 之后。
小智 5
一个好的解决方案是使用一个整数来构建要存储的值,如下所示:
MAJOR * 10000 + MINOR * 100 + Revision
Run Code Online (Sandbox Code Playgroud)
假设每个范围可以是0..99。如果您想转到0..999,请使用
MAJOR * 1000000 + MINOR * 1000 + Revision
Run Code Online (Sandbox Code Playgroud)
这将正确排序,易于查询,结构紧凑(1 int列),易于分解,甚至可以在视觉上分解。