V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
zhangwei1996
V2EX  ›  MySQL

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

  •  
  •   zhangwei1996 · 2015-09-21 10:30:50 +08:00 · 3900 次点击
    这是一个创建于 3370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    难道就是简单的存在数据库的字段里?不可能吧?要是谁进入数据库,随便加几个 0 ,不就粗大事了?

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

    钱庄不对账的咯?
    shiny
        18
    shiny  
       2015-09-21 23:30:09 +08:00
    @zhujinliang 不是应该按“分”来存吗?
    mengzhuo
        19
    mengzhuo  
       2015-09-22 09:18:17 +08:00 via iPhone   ❤️ 1
    手游也有专门的中间件来记录钻石和付费情况的
    一般程序猿都没有线上系统的权限的
    realpg
        20
    realpg  
       2015-09-23 12:06:13 +08:00   ❤️ 1
    多重数据。
    1. 数据库存储余额
    2. 缓存系统
    3. 交易记录重算
    4. 不可更改的 LOG
    使用前三者实时对账,第四者用于阶段对账
    完全无误差才可进入实体财务系统
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3129 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:51 · PVG 12:51 · LAX 20:51 · JFK 23:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.