我知道对于购物车商品等信息的普遍共识是将它们存储在 session 中。但是,属于某个用户且可以被其他用户更改的对象又如何呢?比如说,一个类似 eBay 的网站。如果您在 session 中存储用户的“项目”,其中包含当前的出价金额,并且另一个用户进入并对该项目进行出价,则您必须更新数据库中的项目以及 session 中的项目,你不会吗?
在这种情况下,唯一的选择是存储在 session 中并在其他用户采取的任何操作影响某人的 session 值时刷新,或者将所有内容存储在数据库中并每次检索它(如果您有每个页面侧面板上显示的出价)。
最佳答案
我会将其全部存储在数据库中并每次都检索它。根据数据的波动性,可能需要缓存几秒钟。最大的问题是保持两者一致。
我认为每次检索数据并不像您想象的那么昂贵。如果您根据键进行查找,数据库会非常高效。我会在简单性方面犯错误(存储在数据库中并检索),直到在负载下(即在负载测试中)出现性能问题。
如果只有几次,您也许可以使用应用程序缓存(除非您有多个工作进程/服务器)并确保数据库和缓存保持同步。
关于asp.net - 在 session 中存储购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/297576/