我将创建一个票务系统,其中用户可以发布请求,然后系统会返回请求的票号或参考号以跟踪其状态。我的问题是,使用从sql server表生成的自动编号作为返回给用户的参考编号是否安全?猜测参考号码不会成为问题,因为任何人都应该能够检查请求的状态,因为不涉及敏感数据。对于这种或更好的方法,是否有任何最佳实践?谢谢。
答案 0 :(得分:1)
当然 - 使用INT IDENTITY
可能是最简单,最安全的选择。
SQL Server会为您处理所有事情 - 您只需获得一个漂亮,干净的数字并完成它。
如果您愿意,还可以将连续数字(ID
)与例如PROJ-000005
组合在一起。用于创建“案例编号”的项目或产品前缀,例如OTHR-000006
,ALTER TABLE dbo.YourTable
ADD PrefixedNumber AS Prefix + '-' + RIGHT('000000' + CAST(ID AS VARCHAR(10)), 6) PERSISTED
等。通过在表中使用计算列可以非常轻松地完成此操作 - 如下所示:
ID
然后,您的表格会有一个标识列Prefix
,其中包含自动生成的数字,某种客户或项目或产品已确定为PrefixedNumber
,您的计算列{{1}}将包含这些花哨的前缀案例编号。