• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

学无止境

学习的记录
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

数据库中“钱”数据类型如何设计?

     关于数据库数据类型money,从最近的两个项目中有些体会。
     上个项目,单价信息我设计的是money,因为“钱”自然对应money——我这么考虑的。出现的问题是,我们有数量信息,它不是整数是有小数的,我设计的是float,还有总价,因为涉及计算很多,我们都在内部算好放在一个总价的字段便于获取和统计,总价的字段也为money。问题就是money*float很多时候小数后位数超过了Money类型后的4位小数,需要强制转数据类型,同事跟我抱怨——“烦人”。
      这次又有单价,数量的问题,所以我考虑是不是换掉money?
      首先,我要弄清楚为什么会出现强制转换?原因是4位小数*未知位小数得到的结果很大可能性超过4为小数,所以会要进行数据类型的转换。
      接着,就是想解决的方案。经过选择我确定用decimal,单价用decimal(18,2),数量用decimal(18,2),预留总价decimal(18,4),这样2位小数*2位小数差不多4位小数,这样数据库存储时就不用强制类型转换了。
      确定了这个方案就是实施,已经实践,好与坏还要等待开发和使用的体会。

posted on 2007-10-24 11:08  littlebamboo  阅读(2453)  评论(5)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3