Mysql入门系列:选择MYSQL列的类型
2006-12-31 10:47:37 来源:WEB开发网对于金钱的计算,需要处理元和分部分。这似乎像浮点值,但FLOAT和DOUBLE 容易出现舍入错误,除了只需要大致精确的记录外,这些类型可能不适合。因为人们对自己的钱都是很敏感的,最好是用一种能提供完善的精确性的类型,例如:
■ 将钱表示为DECIMAL(M, 2) 类型,选择M 为适合于所需取值范围的最大宽度。这给出具有两位小数精度的浮点值。DECIMAL 的优点是将值表示为一个串,而且不容易出现舍入错误。不利之处是串运算比内部存储为数的值上的运算效率差。
■ 可在内部用整数类型来表示所有的钱值。其优点是内部用整数来计算,这样会非常快。不利之处是在输入或输出时需要利用乘或除100 对值进行转换。有些数据显然是数值的,但必须决定是使用浮点类型还是使用整数类型。应该搞清楚所用的单位是什么以及需要什么样的精度。整个单元的精度都够吗?或者需要表示小数的单元吗?这将有助于您在整数列和浮点数列之间进行区分。例如,如果您正表示权重,那么如果记录的值为英磅,可以使用一个整形列。如果希望记录小数部分,就应该使用浮点列。在有的情况下,甚至会使用多个字段,例如:如果希望根据磅和盎司记录权重,则可以使用多个列。
高度(h e i g h t)是另外一种数值类型,有如下几种表示方法:
■ 诸如“6 英尺2 英寸”可表示为“ 6 - 2”这样一个串。这种形式具有容易察看和理解的优点(当然比“ 74 英寸更好理解”),但是这种值很难用于数学运算,如求和或取平均值。
■ 一个数值字段表示英尺,另一个数值字段表示英寸。这样的表示进行数值运算相对容易,但两个字段比一个字段难于使用。
■ 只用一个表示英寸的数值段。这是数据库最容易处理的方式,但是这种方式意义最不明确。不过要记住,不一定要用与您惯常使用的那种格式来表示值。可以用MySQL的函数将值转换为看上去意义明显的值。因此,最后这种表示方法可能是表示高度的最好方法。
更多精彩
赞助商链接