后台数据存放位置
session
习惯性的把用户提交到后台的数据暂存到session里,业务逻辑也直接根据session中的数据进行处理。
但是这样做让我吃了大苦头了。
最常见的问题,是用户在发起一个session后,在不同的页面之间胡乱跳转,导致页面、session和数据库中的数据对应不上。然后就引发更大 的问题。
sigh。
数据库
按我们老大的说法,数据以数据库为准。每一次提交表单都把提交的数据更新到数据库中;处理业务逻辑的时候从数据库读取数据即可。
但是这样,数据库的读写操作会不会太多了……
没想到更好的法子呐。
补充
现在看来,这个法子还是不错的。session中存一份用户身份的存根;后台根据存根从数据库中获取数据。这样基本能保证用户数据的正确性。
再次补充
2023-02-15补充。
若干年后,虽然是我小弟犯了这个错误,但也导致我吃这个问题的亏。
小弟在做列表查询页面的后台时,把列表数据放到了session中。当前端根据数据的key来查询详细数据时,他的做法是从session中拿出列表数据,遍历并匹配key值,从而找到对应的数据,返回给前端。如果没有找到,就报错。
测试时,由于一直用的单机服务,这套代码运行得很流畅。然而一上线,问题立即暴露了出来:线上是多机部署,并且既没有做session保持、也没有做session共享。
哎,希望小弟也能吃一堑长一智,别把数据放到session里了。