代码之家  ›  专栏  ›  技术社区  ›  john Gu

用于存储NumberOfEmployees的Best Sql server 2008 R2数据类型。值可以大于等于零

  •  0
  • john Gu  · 技术社区  · 8 年前

    我正在为我的人力资源系统建立一个数据库。这里我需要存储每个部门的员工人数。这个数字可以是零到999999之间的任何数字……现在我将EmployeeCount存储为int,并且我正在检查用户不应该输入负数,因此我不会最终得到诸如-30、-100等值。。

    现在,我不确定sqlserver2008r2中是否有更好的数据类型可以用来表示EmployeeCount,它只允许存储正int?i最近的数据类型是tinyint,但它最多只允许255个。。

    2 回复  |  直到 8 年前
        1
  •  2
  •   SlimsGhost    8 年前

    int 在这种情况下,可能是最适合您的数据类型。

    没有一种标准的方式来表示“正int”,但简单的“int”是最接近它的,然后让应用程序(或db约束、存储过程或触发器等)确保输入的值结束>=0

        2
  •  1
  •   Raul    8 年前

    只有当employeecount的最大值为32768时,才能使用SMALLINT。除此之外,在设计表时,您需要一个INT,并且可以添加一个约束,使值为正值。类似于:

    EmployeeCount int NOT NULL CHECK  (EmployeeCount > 0)
    

    如果你真的想,你也可以定义你自己的类型。请阅读以下内容以了解更多信息: https://technet.microsoft.com/en-us/library/aa933121(v=sql.80).aspx