存储数字范围的最佳实践

时间:2019-06-27 19:57:56

标签: sql-server-2008 relational-database

我们有一个ERP系统,可将其输入到SQL Server数据库中。我们有一个带有新数据类别的新产品,我需要在我们的ERP系统中创建一个字段,以容纳一系列数字。色温就是我在这里使用的示例:

范围为3000k-6500k

我的团队希望将这些数字放在一个字段中,因为它们不想在两个字段中输入数据。我觉得我们应该有2个字段的最小值和最大值。从数据库角度来看,最佳实践是什么?将数据填充到一个字段中还是将范围分为两个字段?

谢谢!

1 个答案:

答案 0 :(得分:2)

您应该执行2个字段。诸如colorRangeLow和ColorRangeHigh之类的东西。我什至会删除K并将字段列命名为单位(K)。这样,您可以将字段另存为整数而不是nvarchar。如果范围不多,也可以使用链接表。例如,如果所有新产品的颜色范围均为5个可能范围中的1个,则创建一个包含所有范围的表和一个tinyint ID字段,然后将相应的tinyint保存到表中。从那里,您可以加入查询表并获取数据。

示例1,低范围和高范围

 Table A
 ColorRangeLow(K)      ColorRangeHigh(K) 
 3000                  6500
 2800                  4200

示例2,查找表

Table A (Lookup table)
Range        ID
3000-6500    1
2500-8400    2
6000-8400    3
and so on for all possible ranges

Table B (Product Table)
Product      RangeLookUp
A            2
B            3
C            2

SQL code example
SELECT * FROM TableA LEFT JOIN TableB ON TableB.RangeLookUp = TableA.ID