软件支持系统的唯一票证号

本文关键字:唯一 支持系统 软件 | 更新日期: 2023-09-27 18:37:02

我正在开发一个票务系统,用于使用 MVC 4 和实体框架 5 ASP.NET 跟踪错误和软件更改。我需要一种方法从一组可能的数字中选择一个唯一的数字。我的想法是创建一组可能的数字,并在使用和分配给支持票证时标记该组中的数字。

我有此代码用于生成所有可能的票号可供选择,但我想使用前导零,以便所有票号具有相同的长度:

public static class GenerateNumber
{
    private static IEnumerable<int> GenerateNumbers(int count)
    {
        return Enumerable.Range(0, count);
    }
    public static IEnumerable<string> GenerateTicketNumbers(int count)
    {
        return GenerateNumbers(count).Select(n => "TN" + n.ToString());
    }
}

我想要输出

IEnumerable<string> ticketNumbers = GenerateNumber.GenerateTicketNumbers(Int32.MaxValue); 是这样的:

TN0000000001.
.
.
TN2147483647

希望我们不需要像Int32.MaxValue这样大的东西,因为这意味着我们有太多的错误哈哈。我只是想安全,而不是对可用人数的限制感到抱歉。也许我们可以使用在解决后重用票号的方法。但是,我不知道我对重用有何看法,因为它可能会导致以后引用文档的歧义。

考虑到此集合的大小,这是拥有唯一票号的最有效方法吗?

软件支持系统的唯一票证号

在数据库中使用标识列 - 这将为您自动递增。

如果您还需要前缀,请将其存储为单独的 varchar 列,然后出于显示目的,您可以连接它(如果绝对必要,则使用必要的前导零)。 试图在 varchar 字段中存储一个递增的数字有一天会咬你的屁股。


作为旁注,为什么是前导零? 如果我正在修复票证,我想用票号注释我的代码。 前导零只是一种痛苦 - 为什么不只拥有 TN-123 并根据需要让数字变大?