黑马程序员技术交流社区

标题: 关于ATM机业务逻辑讨论 [打印本页]

作者: 程杰    时间: 2012-10-24 09:52
标题: 关于ATM机业务逻辑讨论
不知道大家有没有发现,在ATM自动取款机取钱的时候,一般都是输入完密码直接就是操作(比如查询,取款等等),中间没有判断密码是否正确的判断。直到最后取款或查询时才提醒密码错误。一般业务逻辑都是先判断用户名,密码登陆了在执行操作。我觉的银行这套系统采用这逻辑有2点原因:
1,减少对服务器的操作,如果一上来就先判断密码就等于操作服务器的数据库一次,完了查询等操作在操作数据库。现在是判断密码,查询或取款最后操作两步放到一次操作数据库。
2,任何网络传输都存在丢包的情况,所有减少对服务器的操作有利于减少丢包的情况。
以上是我的理解,希望大家有什么观点一起讨论下。


作者: 古银平    时间: 2012-10-24 09:59
我的理解是,你插入卡后就要根据你的卡上的信息判断,就会读取数据库,将你的所有信息建立索引,输入密码错误就不让你访问里边的数据
作者: 程杰    时间: 2012-10-24 10:05
古银平 发表于 2012-10-24 09:59
我的理解是,你插入卡后就要根据你的卡上的信息判断,就会读取数据库,将你的所有信息建立索引,输入密码错 ...

我觉的一开始就用卡的信息访问数据库的话,既然已经操作数据库了那么密码应该也就判断了。我觉的卡号都是和和密码,一起打包和继续往下的操作一起访问数据库的
作者: 古银平    时间: 2012-10-24 10:09
程杰 发表于 2012-10-24 10:05
我觉的一开始就用卡的信息访问数据库的话,既然已经操作数据库了那么密码应该也就判断了。我觉的卡号都是 ...

但实际的操作是想要判断卡的啊,那么就会连密码一起判断,密码错误的话,只能在输入密码的界面,不会让你查询的,首先ATM要读取你卡的信息,就直接将你的信息建立索引,这样不就效率更高了吗?
作者: 汪坤洋    时间: 2012-10-24 12:21
atm义务逻辑一定会涉及多线程,没有判断密码是否正确估计是怕造成死锁吧!
作者: 程杰    时间: 2012-10-24 12:34
我中午又去ATM机上试了试,插入卡后随便输密码是可以进入下个菜单的。不管是否是同一银行。这种业务逻辑,先操作后判断密码肯定比先判断密码在操作要有效率和减少服务器上数据库操作次数吧,就是不知道能不能用在JAVA 项目上用,比如登录,我先试试,哈哈
作者: 汪坤洋    时间: 2012-10-24 12:46
先操作后判断密码和先判断密码在操作,应该是一样的吧!先操作只是先把你密码存起来,等你操作时还是要调用数据库判断的!先判断就是开始就调用数据库判断,然后再操作,再说用户表和方法表肯定不是一张表,谁先谁后没什么影响吧!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2