关于 migration 表设计 “工资” 字段的设计问题

关于migration表设计“工资”字段的设计问题

首先想到的是

$table->string('basic_wage')->default('')->comment('基本工资');
这种形式的设计,但是考虑后期的性能问题想再这边请教一下如何设计这种带小数点并且后期需要计算的字段
在官方手册中我发现了
$table->double('item', 8, 2); 以及 $table->float('item', 8, 2); 这两种
但是由于本人没有使用过,网上有关这两个类型的说明也少之又少,希望能有大佬能给予解惑。 感激不尽

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

与钱相关的有小数点的字段一律使用 decimal 类型,而不是 float 和 double,后面两种类型在做小数运算时有可能出现精度丢失的问题

4年前 评论
CrazyLickingDog (楼主) 4年前
Tricker 4年前
讨论数量: 10
leo

如果只需要精确到分,还有一种比较常见的做法是以分为单位存整型

4年前 评论
CrazyLickingDog (楼主) 4年前
CrazyLickingDog

或者使用$table->integer(); 是否可以,着实不太清楚。

4年前 评论

与钱相关的有小数点的字段一律使用 decimal 类型,而不是 float 和 double,后面两种类型在做小数运算时有可能出现精度丢失的问题

4年前 评论
CrazyLickingDog (楼主) 4年前
Tricker 4年前
leo

如果只需要精确到分,还有一种比较常见的做法是以分为单位存整型

4年前 评论
CrazyLickingDog (楼主) 4年前

存整型,以分为单位,存进去的时候乘100,取出来的时候除100。即可。

4年前 评论
CrazyLickingDog (楼主) 4年前
qufo (作者) 4年前
CrazyLickingDog (楼主) 4年前

使用整数,精确到分

4年前 评论

给别人钱就用整型,毕竟给得越少越好呀,收别人钱用decimal,多保留几位,有时候差一厘一年下来都有好多钱呀 :stuck_out_tongue_closed_eyes:

4年前 评论
CrazyLickingDog (楼主) 4年前

分单位,存整型

4年前 评论
CrazyLickingDog (楼主) 4年前

对于工资这么敏感的数据,竟然存的是明文?

4年前 评论

demical类型 + BC库,双重保险

4年前 评论
JeffreyBool

存整型是最好的方案,最小支持分就行了

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!