sMa*_*Mah -1 sql sql-server versioning delphi
我正在研究程序与一些记录的数据文件之间的接口。我的程序将加载数据文件并将其存储到数据库中。在记录的数据文件中,其格式结构包含其他程序(生成该文件)的不同版本号
处理版本号的最佳方法是什么?
Major_Minor_Build_Revision
12.03.04.142
我将在程序中使用它稍后加载指定版本(例如2.03.04.142)的所有数据
程式设计
在Delphi中,我们可以创建一条记录并处理版本号:
TVersion = Record
Major : integer;
Minor : integer;
Build : integer;
Revision : integer;
end;
Run Code Online (Sandbox Code Playgroud)
还是将其转换为Integer并将其存储会更好?如果是进行转换的最佳方法是什么?
数据库
在SQL数据库中,同样的事情,我们可以为[Major],[Minor],[Build],[Revision]创建每列作为整数来存储。
或者,如果使用版本转换,则只能在SQL [Version]中使用一列。
哪一种是最佳使用方式?还是有更好的方法来处理它?
提前致谢。
SQL Server具有糟糕的内置字符串解析支持。因此,我不鼓励您仅将版本存储为句点分隔的字符串。如果这样做,您可能会PARSENAME()广泛使用该功能。然后,有一天,如果您对该版本具有第五或第六个元素,则将不再起作用。
因此,这里有一些替代方法:
创建版本参考表。这将具有与Delphi版本控制相同的结构,外加其他字段,以显示输出内容和标识主键。其他表中的版本将引用该表中的值。
将版本的四个部分中的每个部分存储在其自己的列中,并使用用户定义的函数或计算列来操纵版本。
为版本创建您自己的用户定义类型。
我倾向于选择前两个选项之一。
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |