存储数值范围的最佳实践
Best practice for storing numeric ranges
我们有一个 ERP 系统,可以输入 SQL 服务器数据库。我们有一个带有新数据类别的新产品,我需要在我们的 ERP 系统中创建一个字段来容纳一系列数字。色温是我在这里使用的例子:
范围是 3000k-6500k
我的团队希望将这些数字放在一个字段中,因为他们不想将数据输入到两个字段中。我觉得我们应该有最小和最大 2 个字段。从数据库的角度来看,这里的最佳实践是什么?将数据填充到一个字段中还是将范围拆分为 2 个字段?
谢谢!
你应该做2个字段。类似于 colorRangeLow 和 ColorRangeHigh。我什至会删除 K 并用单位 (K) 命名字段列。这样您就可以将该字段保存为整数而不是 nvarchar。如果范围不多,您也可以使用 link table。例如,如果所有新产品的颜色范围是 5 个可能范围中的 1 个,则有一个包含所有范围的 table 和一个 tinyint ID 字段,然后将相应的 tinyint 保存到 table 反而。从那里您可以加入查找 table 并获取您的数据。
示例 1,低范围和高范围
Table A
ColorRangeLow(K) ColorRangeHigh(K)
3000 6500
2800 4200
例2,查找table
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
我们有一个 ERP 系统,可以输入 SQL 服务器数据库。我们有一个带有新数据类别的新产品,我需要在我们的 ERP 系统中创建一个字段来容纳一系列数字。色温是我在这里使用的例子:
范围是 3000k-6500k
我的团队希望将这些数字放在一个字段中,因为他们不想将数据输入到两个字段中。我觉得我们应该有最小和最大 2 个字段。从数据库的角度来看,这里的最佳实践是什么?将数据填充到一个字段中还是将范围拆分为 2 个字段?
谢谢!
你应该做2个字段。类似于 colorRangeLow 和 ColorRangeHigh。我什至会删除 K 并用单位 (K) 命名字段列。这样您就可以将该字段保存为整数而不是 nvarchar。如果范围不多,您也可以使用 link table。例如,如果所有新产品的颜色范围是 5 个可能范围中的 1 个,则有一个包含所有范围的 table 和一个 tinyint ID 字段,然后将相应的 tinyint 保存到 table 反而。从那里您可以加入查找 table 并获取您的数据。
示例 1,低范围和高范围
Table A
ColorRangeLow(K) ColorRangeHigh(K)
3000 6500
2800 4200
例2,查找table
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