充值系统的“货币”是怎么储存的?

2015-09-21 10:30:50 +08:00
 zhangwei1996
难道就是简单的存在数据库的字段里?不可能吧?要是谁进入数据库,随便加几个 0 ,不就粗大事了?
3865 次点击
所在节点    MySQL
20 条回复
liprais
2015-09-21 10:32:34 +08:00
连银行的钱都是写在数据库里,有啥不安全的
jadecoder
2015-09-21 10:33:17 +08:00
有交易记录,可以和支付系统的对比。最后能账目要能平上就没问题了。如果平不了,可以算哪个账户的余额和流水不符
azhao
2015-09-21 10:34:23 +08:00
你要安全的话,用户贮值系统是其它的系统分开的
只有你有权限
ipconfiger
2015-09-21 10:36:48 +08:00
有触发器,对这个字段的修改都会 insert 记录到其他表,记录下是谁改的
zhangwei1996
2015-09-21 10:37:09 +08:00
@ipconfiger 这个好
popok
2015-09-21 10:38:00 +08:00
@jadecoder 对的,数据都一样,都是存在库里,主要是其他一些财务统计来确保其数据的安全性,平账这个词
xAx
2015-09-21 10:42:37 +08:00
会根据分录进行对账,检查总分平不平。这是银行类系统必做的事。
在日终会对当天的所有交易的分录先进行明细比对、再逐级往上汇。
只有总分平的情况下系统才会翻牌换日,否则就要进行调账。
jadetang
2015-09-21 11:13:56 +08:00
数据库。
数据库有审计功能。
生产环境的数据库你以为谁都能登上?
zhujinliang
2015-09-21 11:23:16 +08:00
记得存 decimal 不要存 float 。。。
wolfan
2015-09-21 11:30:36 +08:00
话说不是存在数据库中某一字段里那存在那里?
银行应该是更看重关联的账簿吧,因为你要改动账簿不是单单改变一处,是要联动的。
lyragosa
2015-09-21 11:32:44 +08:00
我的个人网站处理货币还真是简单存储,谁进数据库直接加几个零就行了。
懒得搞那么复杂的审计系统……反正也没几个人用……
Soar360
2015-09-21 11:41:10 +08:00
说说经验。这种操作其实不是一步就完成的。现在在做大规模或者严格数据操作的时候,是先写数据库,然后写 LOG 文件,接着 LOG 处理系统会将 LOG 文件和数据库记录搞到任务表,任务执行器再进行执行,反馈结果,然后再写 LOG 日志。 LOG 日志和数据分权限管理。
msg7086
2015-09-21 15:04:12 +08:00
谁要是能进数据库,不用改任何东西,就已经出大事了。
julyclyde
2015-09-21 18:11:51 +08:00
余额 用于快速判断够不够
记录 用于对账
Mrun
2015-09-21 21:07:36 +08:00
生产环境的数据库不是谁都可以上的
zts1993
2015-09-21 21:07:43 +08:00
log.对账,还有有种钱丢了叫资损。
XadillaX
2015-09-21 22:57:34 +08:00
照你这么说,以前钱庄的时候,我只需要偷到账本,然后在我的账目后面加几个零就好咯?

钱庄不对账的咯?
shiny
2015-09-21 23:30:09 +08:00
@zhujinliang 不是应该按“分”来存吗?
mengzhuo
2015-09-22 09:18:17 +08:00
手游也有专门的中间件来记录钻石和付费情况的
一般程序猿都没有线上系统的权限的
realpg
2015-09-23 12:06:13 +08:00
多重数据。
1. 数据库存储余额
2. 缓存系统
3. 交易记录重算
4. 不可更改的 LOG
使用前三者实时对账,第四者用于阶段对账
完全无误差才可进入实体财务系统

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/222352

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX