货币值的最佳SQL数据类型是什么?我正在使用MySQL,但更喜欢数据库独立类型.
在寻找简约的资金跟踪/预算应用程序之后,我决定构建一个供我个人使用.
但是我不确定部分数据库设计.基本上目前,我有一个条目表,显然存储有关每笔交易的数据,无论是信贷还是债务等.
我遇到的困境是,我不知道是否应该创建另一个表来存储每个帐户的当前余额,或者我是否应该通过从信用中减去借方来动态填充它.
我的一部分是说,随着条目表的增长,为每个帐户生成余额的能力将变得更慢(是的,过早优化被认为是邪恶的),但是当我可以从现有表计算数据时,似乎没有必要添加另一个表.
谢谢
编辑:对不起,我可能不太清楚,我了解如何实施创建帐户余额的方法.我更关注两种方法的优点/缺点以及什么是"最佳实践".非常感谢回复!
我有一些值来自需要存储在我的数据库中的服务器.我不是MySQL专家,但我对基本输入/输出的理解非常好.现在我试图找出存储以下小数时我应该使用的长度.
tax_rate [DECIMAL ?,?]: value(0.014840000000)
units [DECIMAL ?,?]: value(1.00)
initial_charge [DECIMAL ?,?]: value(2.5110)
charge [DECIMAL ?,?]: value(2.8967)
link_tax [DECIMAL ?,?]: value(0.385652)
exempt [DECIMAL ?,?]: value(0.0000)
tax [DECIMAL ?,?]: value(0.042986)
base_price [DECIMAL ?,?]: value(41.8500)
Run Code Online (Sandbox Code Playgroud)
我希望有人可以建议我需要使用这些值的正确数据长度AS WELL解释他们为什么选择这些值.或者链接到一篇深入解释MySQL小数的文章.
任何帮助,将不胜感激.
谢谢!
------- 编辑 --------
在阅读了mysql文档之后,这就是我已经解决了以下小数长度:
tax_rate [DECIMAL 15,12]: value(0.014840000000) ? max(999.999999999999)
units [DECIMAL 6,2]: value(1.00) ? max(9999.99)
initial_charge [DECIMAL 9,4]: value(2.5110) ? max(99999.9999)
charge [DECIMAL 9,4]: value(2.8967) ? max(99999.9999)
link_tax [DECIMAL 9,6]: value(0.385652) ? max(999.999999)
exempt [DECIMAL 9,4]: value(0.0000) ? max(9999.9999)
tax [DECIMAL 10,6]: …Run Code Online (Sandbox Code Playgroud) 我将货币值以浮点数形式存储在mysql表中。
问题是,mysql正在向上或向下舍入数字。
例如 12345.68取整为12345.7
如何停止此操作,还是应该使用更好的数据类型?
我想保留2个小数位内的原始值。
我在Laravel 4和MySQL中使用PHP,我不知道如何处理货币价值.
我想用这种格式显示它们:
120,50€
1.000,50€
Run Code Online (Sandbox Code Playgroud)
金额字段是类型DECIMAL(12,2).
我应该保存喜欢12050或喜欢的金额120,50吗?