我有很多不同的英尺/英尺字符串:
10 feet and 8 1/4 inches
7 feet and 4 3/8 inches
我需要将它存储到DB(我使用MS SQL) 怎么做最好的方法?我看到以下方法:
脚:10
分子:33(4 * 8 + 1)
分母:4
以毫米为单位存储。在这种情况下,我无法恢复到简单的分数,因为客户希望看到
以英寸为单位存储,但以小数表示。同样的问题,无法恢复到简单的分数。
如何在MS SQL中以优雅的方式解决这个问题?谢谢
答案 0 :(得分:1)
与@AaronBertrand类似,但这是标准化的,它使用一个字段来显示分数,同时保持分子和分母用于计算。
当没有分数时,显示值可以设置为空字符串。
create table Fractions (
ID int identity(1,1),
DisplayValue varchar(10),
Numerator int,
Denominator int
)
答案 1 :(得分:1)
如果这仅用于存储和计算,那么另一个选项是创建一个CLR用户定义的数据类型,它允许您将逻辑封装在内部并在Sql Server中的任何位置使用它(除了作为索引字段)。
该页面可能会谈论2016年,但它也在2005年以上得到支持。